“测试”指令如何工作?
如果我们有:
test dword ptr [eax], 2000h
je label1:
dword ptr [eax]
中除了 0
之外是否还有其他值可以使跳转发生?
If we have:
test dword ptr [eax], 2000h
je label1:
Is there any value other than 0
in dword ptr [eax]
that would make the jump take place?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
指令test的工作方式类似于and指令,唯一的区别是结果不存储回目标操作数。
所以答案是肯定的。所有未在内存地址 [eax] 上设置第 13 位的二进制数,或所有存在的数字,如 b'xxxxxxxx xxxxxxxx xx0xxxxxx xxxxxxxx',其中 x 为 0 或 1,则正好有 2^31 个数字。
Instruction test works like and instruction, the only difference is that result is not stored back in to the destination operand.
So the answer is yes. All binary numbers which not have set the 13th bit on memory address [eax], or all numbers present like b'xxxxxxxx xxxxxxxx xx0xxxxx xxxxxxxx', where x is 0 or 1, there is exactly 2^31 numbers.