第11章 检测点11.1解析
在Debug中各标志位定义如下:
写出下面每条指令执行后,ZF、PF、SF等标志位的值。
sub al,al ZF=1 PF=1 SF=0
;执行完此指令后,结果为0,所以ZF=1;1的个数为0是偶数个,所以PF=1;0非负,所以SF=0。
各标志位状态如下所示:
mov al,1 ;ZF=1 PF=1 SF=0
push ax ;ZF=1 PF=1 SF=0
pop bx ;ZF=1 PF=1 SF=0
;这三条为传送指令,不会对标志寄存器产生影响,所以各标志位状态不变
各标志位状态如下所示:
add al,bl ZF=0 PF=0 SF=0
;此指令执行完结果为2,不为0,所以ZF=0;1的个数为1个,是奇数个,所以PF=0;2非负,所以SF=0
各标志位状态如下所示:
add al,10 ZF=0 PF=1 SF=0
;此指令执行后结果为12(0CH),结果非0,所以ZF=0;1的个数有2个,为偶数个,所以PF=1;结果非负,所以SF=0
各标志位状态如下所示:
mul al ZF=0 PF=1 SF=0
;此指令执行后结果为144(90H),结果非0,所以ZF=0;1的个数有2个,为偶数个,所以PF=1;结果非负,所以SF=0
各标志位状态如下所示: