检测点 11.2
写出下面每条指令执行后,ZF、PF、SF、CF、OF 等标志位的值。
CF OF SF ZF PF
sub al,al 0 0 0 1 1
结果 (al)=00000000B:进位 0,“假”;溢出 0,“假”;符号非负,“假”;零位“真”;“偶个 1”,“真”。
CF OF SF ZF PF
mov al,10H 0 0 0 1 1
mov 为传送指令,(al)=10h,flag 寄存器保持原值不变。
CF OF SF ZF PF
add al,90H 0 0 1 0 1
计算结果 (al)=(10h)+(90h)=00010000B+10010000B=16+(-112)=-96=10100000B=A0h:进位 0,“假”;溢出
0(有符号数运算无溢出),“假”;符号负(最高有效位为 1),“真”;零位“假”;“偶个 1”,“真”。
CF OF SF ZF PF
mov al,80H 0 0 1 0 1
mov 为传送指令,(al)=80h=-128,flag 寄存器保持原值不变。
CF OF SF ZF PF
add al,80H 1 1 0 1 1
计算结果 (al)=(al)+80h=80h+80h=10000000B+10000000B=-128-128=(1)00000000B=(1)00h(括号内的数字 1 表示无符号数相加时的进位溢出):进位 1,“真”;溢出 1(有符号数运算产生溢出),“真”;符号非负,“假”;零位“真”;“偶个 1”,“真”。
CF OF SF ZF PF
mov al,0FCH 1 1 0 1 1
mov 为传送指令,(al)=0FCh=,flag 寄存器保持原值不变。
CF OF SF ZF PF
add al,05H 1 0 0 0 0
计算结果 (al)=(al)+05h=FCh+05h=11111100B+00000101B=-4+5=1=(1)00000001B=(1)01h(括号内的数字 1 表示无符号数相加时的进位溢出):进位 1,“真”;溢出 0(有符号数运算无溢出),“假”;符号非负,“假”;零位“假”;“奇个 1”,“假”。
CF OF SF ZF PF
mov al,7DH 1 0 0 0 0
mov 为传送指令,(al)=07Dh,flag 寄存器保持原值不变。
CF OF SF ZF PF
add al,0BH 0 1 1 0 1
计算结果 (al)=(al)+05h=7Dh+0Bh=01111101B+00001011B=125+11=136=10001000B=88h:进位 0,“假”;溢出 1(有符号数运算产生溢出),“真”;符号负(最高有效位为 1),“真”;零位“假”;“偶个 1”,“真”。