testl指令的问题

testl指令,这个指令说是将两个操作数做与来设置零标志位和负数标识,常用的方法是testl %eax,%eax来检查%eax是正数负数还是0;
标志位通过结果值来设置.%eax = %eax & %eax;
不改变%eax通过testl %eax,%eax却可以设置或者清除一些标志,以便实现分支结构
总结:test语句是根据上次计算结果的性质设置相应的状态码(condition code),而testl %eax,%eax的结果就是%eax,于是就针对%eax值的属性设置状态码,例如上面说到的是正是负还是零

原文地址:https://www.cnblogs.com/HuaiNianCiSheng/p/3074717.html