1
这是我遇到的行为的一个例子。我的汇编程序似乎没有输出32位代码
在组装下面的程序:
[BITS 32]
mov eax, 0x1234
使用:
nasm -f bin in.asm -o out.bin
我得到以下二进制输出:
B8 34 12 00 00
B8是操作码 '进入EAX' 和它应该采取一个32位值并将其放在那里(即应该只是B8 34 12
)。但相反,它将额外的00 00
视为一个64位值。
我不知道这是否是NASM特有的问题,因为我没有尝试过其他的汇编程序。
妈的,你说得对。直到再过10分钟才能接受答案... – almosnow
还要注意,如果你没有制作一个扁平的二进制文件,你需要使用'-felf64'或其他任何东西,并且这使得[[64位]]成为多余的。 '[bits 32]'可以让你将32位机器码汇编成一个64位的目标文件,但这通常不会有用。 –
@PeterCordes必须在您的最新消息前几秒删除我的无关评论。肯定错过了'不' –