我需要生成不同C代码的机器代码。我通过使用源代码工作台编译C代码我可以成功编译它并获得汇编代码和可执行文件我有什么问题我只需要机器代码而不是我可以将该机器代码放在FPGA上。我有一种方法可以得到是使用-objdump命令意味着反编译可执行文件,但这个反编译文件是在elf格式中添加了很多这样的,所以如果有人知道如何只获取机器代码。这对我很有帮助。
答案 0 :(得分:0)
尝试readelf -x .text foo
获取已编译的可执行文件foo
的文本(机器代码)部分的十六进制转储。您可能还需要转储其他部分,例如GOT和初始化数据部分。
答案 1 :(得分:0)
感谢回复
这个命令有效,但给我一个空文本文件,我做了什么。
〜/ Mentor_sourcery / bin / mips-linux-gnu-gcc -x C_code.c它给了我一个可执行文件a.out。
然后我运行〜/ Mentor_sourcery / bin / mips-linux-gnu-objdump -x a.out> foo1.txt
它给了我精灵格式的文件。
3.then~ / Mentor_sourcery / bin / mips-linux-gnu-readelf -x foo1.txt> final.txt
此命令运行没有任何错误,但给了我一个空的.txt文件