由于我是 binutils、gcc 和其他人的新手,所以我有一些一般性的问题,以及我在手册中没有找到的答案。
我正在使用 C 和程序集(nasm 语法),我需要输出原始二进制文件。首先,我将代码编译为带有参数的objec文件:
cc -nostartfiles -nostdlib -c -ffreestanding <input file(s)> ;cc or gcc no matter
然后我使用简单的脚本链接所有文件,该脚本只将段按需要的顺序排列。
ld -T <script> -o <o.file> <in.file(s)> ;nothing special here
为了获得原始二进制文件,我使用 objcopy
objcopy -O binary <o.file> <in.file> ;can't be simplier
总而言之,我只需要包含 .text 和 .data 段的二进制文件以及 32 位代码。
1.我能以这种方式得到我想要的吗?
2.还有其他方法吗?(无论更简单或更复杂)
谢谢你的帮助。
我没有编译 Asm 代码的问题,几乎所有的 C 代码问题。