8086汇编复习3 - 标志寄存器 - 使用emu8086

1 认识标志寄存器

标志寄存器
    CPU内部有一种寄存器,具有三种作用:
    1)存储相关指令的某些执行结果;
    2)用来为CPU执行相关指令提供行为依据;
    3) 用来控制CPU的相关工作方式;
    这种寄存器在8086中称为标志寄存器;标志寄存器简称flag;
    8086标志寄存器有16位,其中存储的信息称为程序状态字(PSW);
    flag是按位起作用;
    flag的1、3、5、12、13、14、15位在8086CPU中没有使用;

进入emu8086;
按emulate按钮,弹出emulator窗口;
按flags按钮,弹出flags窗口,即标志寄存器;各位初始值如图;
按analyse按钮,弹出 lexical flag analyser窗口;表示出flags当前各位的值所表示的意义;
    例如ZF是零标志位;

2 零标志,奇偶标志

ZF标志
    零标志位;flag第6位;
    记录相关指令执行后,结果是否为0;
    结果为0,zf=1;否则,zf=0;
 
mov ax,1
sub  ax,1
执行后结果为0;zf=1;

mov ax,1
and ax, 0
执行后,结果为0,zf=1;

有的指令是影响标志寄存器的,大都是运算指令;
有的指令不影响标志寄存器,大都是传送指令;

PF标志
    flag第二位;奇偶标志位;
    记录指令执行后,结果的所有bit位中1的个数是否为偶数;
    1的个数为偶数,pf=1;否则=0;

mov al, 1
add al, 10
执行后,结果为00001011B,3个1,则pf=0;

mov al, 1
or al, 2
执行后,结果为00000011B,2个1,pf=1;

3 符号标志

SF标志
    flag的第7位;符号标志;
    记录指令执行后,结果是否为负;如果为负,sf=1;否则=0;
    计算机中通常用补码表示有符号数据;
    计算机中的一个数据可以看作有符号数,也可以看作无符号数;对于同一个二进制数据,计算机可以将它当作无符号数据来运算,也可以当作有符号数据来运算;
    CPU在执行add等指令的时候,就已经包含了两种含义,也将得到用同一种信息来记录的两种结果;
    SF标志,就是CPU对有符号数运算结果的一种记录,它记录数据的正负;

mov al, 10000001B
add al, 1
    执行后,结果为 10000010B,sf=1,表示:如果指令进行的是有符号数运算,那么结果为负;

mov al, 10000001B
add al, 01111111B
    执行后,结果为0,sf=0;表示:如果指令进行的是有符号数运算,那么结果为非负;

    某些指令影响flag的多个标记位;
    指令sub al, al执行后,ZF、PF、SF受影响,分别为:1,1,0;

4 进位标志

CF标志
    flag第0位;进位标志;
    一般情况下,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值;
    两个8位数据:98H+98H;将产生进位;进位在8位数中无法保存;CPU把进位记录在CF;

mov al, 98H
add al, al  ;  执行后,al内容为30H,CF=1;
add al, al  ; 执行后,al内容为60H, CF=0;

    两个数据做减法,可能向更高位借位;
    97H-98H,将产生借位,借位后,相当于计算197H-98H;CF也可以记录这个借位;

mov al, 97H
sub al, 98H  ;  执行后,al内容为FFH,CF=1,CF记录了向更高位的借位;
sub al, al ;     执行后,al内容为0,CF=0;

5 溢出标志

OF标志
    在进行有符号数运算时,如结果超过了机器所能表示的范围称为溢出;
    8位有符号数,机器所能表示的范围是-128 - 127;16位有符号数,机器所能表示的范围是-32768-32767;
    
mov al, 98
add al, 99
    执行后将产生溢出;98+99=197;

mov al, 0F0H;F0H,有符号数-16的补码;
add al, 088H ;  88H,有符号数-120的补码;
    执行后将产生溢出;(-16) + (-120) = -136;

如果在进行有符号数运算时发生溢出,那么运算的结果将不正确;

flag的第11位是OF,溢出标志;发生溢出,OF=1;否则OF=0;

CF和OF的区别:
    CF是对无符号数运算有意义,OF是对有符号数运算有意义;

发布了475 篇原创文章 · 获赞 545 · 访问量 304万+

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/104590410
今日推荐