写出下面每条指令执行后,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位,非负。