奇怪JWASM(MASM兼容)行为

cmp word ptr ds:[0], 0AA55h 

组装和objdumped,它看起来像这样:奇怪JWASM(MASM兼容)行为

67 81 3d 00 00 00 00 addr32 cmpw $0xaa55,0x0 

55 aa

为什么addr32在这里?我的意思是做我做的同样的事情& T(GAS)语法:

cmpw $0xAA55, %ds:0 

这,反过来,objumped:

81 3e 00 00 55 aa  cmpw $0xaa55,0x0 

有一个在文件的开头use16,几乎一切似乎都没问题,除此之外。

回答:

我想是因为实际上你已经在JWASM中指定了.i386(或更高)的指令,结果生成了32位代码,因为Intel 80386是32位的CPU。

尝试使用.i286指令编译此代码以存档实际的16位代码。

以上是 奇怪JWASM(MASM兼容)行为 的全部内容, 来源链接: utcz.com/qa/265416.html

回到顶部