- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
1.
TEST EAX,EAX
JNZ SHORT program.00407190
2.
XOR EAX,EAX
JNZ SHORT program.00407190
如果我错了,请纠正我。谢谢你! :)
据我目前的了解:
JNZ
不等于0则跳转,是否跳转取决于ZF
是否设置为1。如果为1,则不会跳转。否则,它会跳。
根据我对代码 #1 的理解,TEST EAX,EAX
将检查它是否为零。如果不等于0(ZF
为0),则会跳转到地址00407190。
对于代码#2XOR EAX,EAX
会将 EAX 寄存器设置为 0。它是否设置任何标志?如果不是,JNZ
指令如何判断是否跳转?
最后,为什么人们想要检查 EAX 是否为 0?请帮助我更简单和详细的解释,我还是一个初学者。
最佳答案
TEST
和 XOR
是用于对操作数执行逻辑运算的逻辑指令。
测试指令(比较操作数)
TEST destiny, source
它对操作数进行逐位求和,但与 AND
不同,该指令不会将结果放入目标操作数,它只对标志的状态产生影响.
Source Destiny | Destiny
--------------------------
1 1 | 1
1 0 | 0
0 1 | 0
0 0 | 0 <---
<小时/>
异或指令(异或)
XOR destiny, source
其功能是对两个操作数逐位进行逻辑异或。
Source Destiny | Destiny
--------------------------
1 1 | 0 <---
1 0 | 1
0 1 | 1
0 0 | 0 <---
<小时/>
正如您在表格中看到的:
XOR EAX,EAX
会将 EAX
寄存器设置为零。如果XOR
的结果为零,则ZF
将被设置。所以在这种情况下:(ZF=1
)
TEST EAX,EAX
不会将结果放入寄存器,它仅对 ZF
的状态产生影响。在这种情况下,如果EAX == 0
,则(ZF=1
)
JNZ (JNE) 指令(条件跳转)
JNZ label
如果不等于或不为零,则跳转到label
。如果 ZF
停用,则跳转将会完成。 (ZF=0
)
关于assembly - 这段汇编代码有什么作用? (测试、异或、JNZ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18996646/
使用IDA Pro反汇编x86 dll后,我找到了这个代码(我在pusedo-c代码中添加的注释。我希望它们是正确的): test ebx, ebx ; if (ebx == fa
1. TEST EAX,EAX JNZ SHORT program.00407190 2. XOR EAX,EAX JNZ SHORT program.00407190 如果我错了,请纠正我。谢谢你!
如果我错了,请纠正我。 这是我对JNZ和CMP的理解。 JNZ - 如果 Z 标志不为零 (1),则会发生跳转 CMP - 如果两个值相等,则设置 Z 标志 (1),否则不设置 (0) 这是我正在观看
我正在阅读一些执行以下操作的代码: OR al, al JNZ loc_123456 如果我正确地阅读了此内容,OR 命令只是设置一个标志位,然后测试该寄存器是否没有任何非零值。 为什么要这样写,而不
在 x86 汇编代码中,JE 和 JNE 与 JZ 和 JNZ 完全相同吗? 最佳答案 JE 和 JZ 只是完全相同的事物的不同名称:当 ZF(“零”标志)等于 1 时条件跳转。 (同样,JNE 和
在我的一次采访中,我在"new"原始程序集中遇到了一个非常复杂的问题(为什么 QA 在告诉我他们的 QA 基于 Python 的测试时需要 assembly 知识......?),它是这样的: 假设您
我是一名优秀的程序员,十分优秀!