在x86指令集中,经常遇到test
指令与条件跳转指令
组合,这是什么含义呢?
博主表示,查了很多资料也没人完全说清楚……
这里只用最简单的,抽象层次进行说明,不讲原理。
举例
test edx,edx
jle 某地址
含义是:如果edx <= 0
,就跳到某地址
,否则继续往下执行。
jle
换成jg
的话,就是edx > 0
跳转。
其他同理。
与cmp
指令和跳转
指令组合的区别是:这个组合比较的是cmp A,B
中,A
与B
的关系。
而test A,A
则比较的是A
与0
的关系。
这些都是抽象层次的应用,具体原理还需要详细研究,这里不展开。