我有一段使用JNZ的代码。当我汇编并链接二进制文件时,我看到我的JNZ被JNE取代。我知道他们从根本上是相同的。但是,为什么NASM会改变它?
另外,是否有任何配置选项可用来阻止在组装时进行此更改?
最佳答案
JNE
和JNZ
具有same opcodes(对于短距离跳起来说是0x75
,对于近距离跳起来说是0x0f 0x85
),因此汇编器将为它们两者创建相同的机器码。
拆卸时,拆卸器不再知道源中使用了哪一个,因此必须取其中的一个。
不,因为它不是真正的“替换”-JNE
和JNZ
是相同操作码的不同助记符。
关于assembly - NASM在组装时将JNZ更改为JNE?为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14807033/