将操作码打印到文件

时间:2009-12-03 20:05:02

标签: opcodes

好奇,如果打开一个十六进制编辑器并手动输入操作码并保存它。如移动1到寄存器1移动2到寄存器2然后调用add,那会给我工作程序吗?或者是否有一些如何自动化这给我糟糕的编译器?

编辑:忘了操作系统,我可以使用Mac OS X和Linux,x86是CPU。

3 个答案:

答案 0 :(得分:1)

正如我在评论中所指出的,OS /平台在这里很重要。大多数平台都期望某种结构可执行(如果只有标题等)。例如请参阅旧版Unix使用的the a.out format

如您所示,您已经拥有Mac OS X,请查看Mach-O format

请注意,键入'A0 A1'...等不同于将实际字节(在本例中为160/161)放入文件中。

答案 1 :(得分:0)

只要您拥有二进制文件的正确文件格式,就可以了。

旧的DOS .com文件只是这个 - 原始程序序列化到磁盘。 .exe文件和unix ELF文件具有结构化格式,包括(除其他外)重定位信息。

答案 2 :(得分:0)

仅当文件是格式正确的可执行二进制文件时。例如,参见COFF和ELF格式的参考文献。

如果您对特定可执行文件的外观感到好奇,也可以使用od转储小型可执行文件的内容。