写出下面每条指令执行后,ZF、PF、SF等标志位的值。
指令 | sub al,al | mov al,1 | push ax | pop bx | add al,bl | add al,10 | mul al |
ZF(0) | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
PF(偶) | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
SF(负) | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ZF标志:是否为0
PF标志:结果中是否有偶数个为1的bit位。
SF标志:结果是否为负,仅有符号运算有用。
提示:传送指令不影响标志位。至于为什么是这样,我估计是因为更改标志位会费时间,CPU的资源很宝贵,而且转移指令的标志位并没有什么实际意义
1. sub al,al 结果为0,有0个为1的bit位,非负。
2. mov al,1 传送指令不影响标志位。
3. push ax 传送指令不影响标志位。
4. pop bx 传送指令不影响标志位。
5. add al,bl 结果为00000010B,结果不为0,有1个为1的bit位,非负。
6. add al,10 结果为00001100B,结果不为0,有2个为1的bit位,非负。
7. mul al 结果为10010000B,结果不为0,有2个为1的bit位,非负。