我想在Windows中编译这个源代码(这只是一个例子):
start:
NOP
NOP
当我用NASM或FASM编译它时,输出文件长度是2个字节。但是当我使用GNU汇编程序(as)编译它时,输出文件长度为292字节!
如何使用GNU汇编程序(as)将汇编文件编译为原始二进制文件(如DOS .com)格式?
为什么我这样做?
我想编写自己的简单操作系统,用C编写代码(不使用任何C标准库,甚至是stdio.h或math.h)并将其转换为汇编:
gcc -S my_os.c -o my_os.asm -masm=intel
然后,我将汇编文件编译为原始二进制文件:
as my_os.asm
然后我将a.out
(汇编程序的输出)重命名为my_os.flp
,最后用VMWare启动我的操作系统:)
答案 0 :(得分:1)
使用带有-f bin
选项的NASM将汇编代码编译为原始二进制文件。
答案 1 :(得分:0)