通过汇编指令影响标志寄存器位

 

通过汇编指令影响标志寄存器位_第1张图片

1、进位标志CF(Carry Flag):如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。

2、奇偶标志PF(Parity Flag):奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。

     如果最低有效字节“1”的个数为偶数,则PF的值为1,否则其值为0。

通过汇编指令影响标志寄存器位_第2张图片

通过汇编指令影响标志寄存器位_第3张图片

3、辅助进位标志AF(Auxiliary Carry Flag):

在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:

       (1)、在字操作时,发生低字节向高字节进位或借位时;

       (2)、在字节操作时,发生低4位向高4位进位或借位时。

 4、零标志ZF(Zero Flag):零标志ZF用来反映运算结果是否为0。

 如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

5、符号标志SF(Sign Flag):符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。

如果最高位为1,则SF为1,否则为0

6、溢出标志OF(Overflow Flag):溢出标志OF用于反映有符号数加减运算所得结果是否溢出。

如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。

通过汇编指令影响标志寄存器位_第4张图片

OF与CF的区别在于,

OF表示有符号数运算结果是否超出范围

CF表示无符号为运算结果是否超出范围

溢出主要是给有符号运算使用的,在有符号的运算中,有如下的规律:

正 + 正 = 正 如果结果是负数,则说明有溢出

负 + 负 = 负 如果结果是正数,则说明有溢出

正 + 负 永远都不会有溢出.

通过汇编指令影响标志寄存器位_第5张图片

 

无符号数 :0-FF

有符号数:

正数:0-7F

负数80-FF

1、无符号、有符号都不溢出

MOV AL,8

ADD AL,8

2、无符号溢出、有符号不溢出

MOV AL,0FF

ADD AL,2

3、无符号不溢出、有符号溢出

MOV AL,7F

ADD AL,2

4、无符号、有符号都溢出

MOV AL,0FE

ADD AL,80

 

 

写汇编指令只影响CF位的值(不能影响其他标志位)

 mov al,0x1
 add al,0x2

通过汇编指令影响标志寄存器位_第6张图片

写汇编指令只影响PF位的值(不能影响其他标志位)

mov al,0x1
add al,0x2

通过汇编指令影响标志寄存器位_第7张图片

写汇编指令只影响AF位的值(不能影响其他标志位)

mov al,0xF
add al,0x1
通过汇编指令影响标志寄存器位_第8张图片

写汇编指令只影响SF位的值(不能影响其他标志位)

mov al,0x80
add al,0x3
通过汇编指令影响标志寄存器位_第9张图片

写汇编指令只影响OF位的值(不能影响其他标志位)

mov al,0x80
 sub al,0x10

通过汇编指令影响标志寄存器位_第10张图片

 

 

 

 

 

 

你可能感兴趣的:(汇编笔记)