您能否直接在文本文件中写入二进制操作码,然后它们会像那样直接被 CPU 提取?

您能否直接在文本文件中写入二进制操作码,然后它们会像那样直接被 CPU 提取?

我找不到任何资料来解释如何编写直接操作码让 ISA 在 CPU 上运行。不是汇编语言,而是直接操作码或“机器码”。

答案1

你可以,但你不应该。

您可以获取任何二进制文件,在文本编辑器中打开它并更改字节。根据您的编辑器和操作系统,某些字节可能比其他字节更难输入。只要编辑器在尝试读取或写入该文件时不做任何额外的事情(因为它试图将文件视为文本),结果将完全取决于您。您也可以通过这种方式创建一个新文件。在 Windows 上,只需使用正确的扩展名保存它;在 Unix 上,设置可执行位。操作系统将运行它,然后会发生一些事情。

您需要一个 CPU 参考来告诉您操作是如何编码的。由于操作数类型和寻址模式的不同,许多操作有多种变化。您还必须计算跳转偏移量等等。所有这些都非常繁琐且容易出错,这就是人们发明汇编程序的原因。

相关内容