我正在阅读第3章CSAPP程序的机器级表示.
testl S2, S1
Run Code Online (Sandbox Code Playgroud)
基于S2和S1的上述指令.
testl %eax, %eax看看%eax是负数,零还是正数.我不明白这个用法.请给我一些解释,谢谢.
TEST指令与AND指令相同,只是它不存储结果.它只修改标志.它修改以下标志:sign,parity,zero,carry(always 0)和overflow(always 0).
testl %eax, %eax
jz zeroLabel ; jump if EAX is zero
js negLabel ; jump if EAX is negative
jns posLabel ; jump if EAX is positive
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.