奇怪的反汇编代码,请教下我理解的是否正确。

PDD123 2016-02-16 04:49:09
lea     edx, [eax-1]
test edx, eax
jnz loc_3CEABC

按我的理解,edx=eax-1。当edx与eax比较时,一定是不相等的,所以,一定会跳转到 loc_3CEABC。
请问,我理解的是否正确?
...全文
165 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
PDD123 2016-03-03
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
不是的吧。test 是位“与”操作进行测试的,与 cmp 的相等比较不同的。如果 eax=1,那 edx=0,jnz 就不会跳转的;如果 eax=0,edx=-1,jnz 还是不会跳转。所以,不会是“一定会”跳转。
谢谢。汗,记差了。 test a,b (a & b) != 0时跳转。
fornetuse123 2016-02-18
  • 打赏
  • 举报
回复
test 是逻辑与 只要 eax或者edx中有一个是0结果就是0 学习了
zara 2016-02-17
  • 打赏
  • 举报
回复
不是的吧。test 是位“与”操作进行测试的,与 cmp 的相等比较不同的。如果 eax=1,那 edx=0,jnz 就不会跳转的;如果 eax=0,edx=-1,jnz 还是不会跳转。所以,不会是“一定会”跳转。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧