【发布时间】:2011-03-09 22:01:35
【问题描述】:
我想打开一个纯数据输入文件,例如:
.data
.org 0
.equ foo, 42
.asciz "foo"
label:
.long 0xffffffff
.long 0x12345678
.byte foo
.long label
.long bar
.equ bar, 'x'
放入对应字节序列'f','o','o', 0, 0xff, 0xff, 0xff, 0xff, 0x78, 0x56, 0x34, 0x12, 42, 4, 0, 0, 0的文件, 'x', 0 , 0, 0.
当我将它与 GNU 组装为 (as -o foo.o -s foo.S) 时,我得到一个 400 多字节的 ELF 文件。我怎样才能让 GNU(或 NASM 或任何其他汇编程序)给我简单的二进制表示?我研究了 GNU 作为选项,但无济于事。我可以修改输入格式,如果这样会使答案更容易(即使用更多不同的伪操作)。
非常感谢任何提示!
问候,詹斯
【问题讨论】:
-
它必须是调用汇编程序的单步输出吗?大多数情况下,这是通过
objcopy对 ELF 输出进行后处理来完成的。 -
您需要使用
ld和objcopy处理来自GNUas的.o。