汇编学习 NO7

来源:互联网 发布:皮卡堂盗号软件 编辑:程序博客网 时间:2024/05/29 18:23
    1. 1.flag寄存器:①.用来存储相关指令的某些执行结果
    2.                    ②.用来为CPU执行相关指令提供行为依据
    3.                    ③.用来控制CPU的相关工作

2.8086CPU的标志寄存器flag有16位,其中存储信息通常被称作为程序状态字(PSW),flag与其他寄存器不同,其他寄存器都是用来存放数据的,都是整个寄存器具有一个含义,而flag寄存器是按位起作用的.

3.ZF:flag的第六位,零标志位,它记录相关指令执行后,其结果是否为0,如果结果为0。那么ZF=1,否则ZF=0.

4.PF:flag的第二位,奇偶标志位,它记录相关指令后,其结果的所有bit位中1的个数是否为偶数,如果1的个数为偶数,PF=1,如果为奇数那么PF=0.

5.SF:flag的第七位,符号标志位,它记录相关指令执行后,其结果是否为负,如果结果为负,SF=1,如果非负,SF=0

6.CF:flag的第零位,进位标志位,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的错位值.

7.OF:flag的第十一位,溢出标志位,OF记录了有符号运算的结果是否发生了溢出,如果发生溢出,OF=1,如果没有OF=0.

   CF和OF:CF是对无符号数运算有意义的标志位,而OF是对有符号数运算有意义的标志位

8.adc    :      进位加法指令,adc 操作对象1,操作对象2

                   功能:操作对象1=操作对象1+操作对象2+CF

9.sbb    :      带错位减法指令,sbb 操作对象1,操作对象2

                    功能:操作对象1=操作对象1-操作对象2-CF

10.cmp:比较指令,功能相当于减法,只是不保存结果,cmp指令执行后,对标志寄存器产生影响,例如: cmp ah,bh

                                 ①.如果SF=1,而OF=0→说明没有溢出,逻辑上真正结果的正负=实际结果的正负

                                 ②.如果SF=1,而OF=1→说明有溢出,如果因为溢出导致了实际结果为负,那么逻辑上真正的结果必然为正.

                                 ③.如果SF=0,而OF=1→说明有溢出,如果因为溢出导致了实际结果为正,那么逻辑上真正的结果必然为负

                                 ④.如果SF=0,而OF=0→说明没有溢出,实际结果为非负,所以逻辑结果必然非负

11.        je      含义:等于则转移            检测位置:ZF=1

            jne    含义:不等于则转移          检测位置:ZF=0

            jb      含义:低于则转移             检测位置:CF=1

            jnb    含义:不低于则转移          检测位置:CF=0

            ja      含义:高于则转移              检测位置:CF=0且ZF=0

            jna    含义不高于则转移           检测位置:CF=1或ZF=1

12.DF:flag的第十位,方向标志位,在串处理指令中,控制每次操作后SI,DI的增减;

         DF=0,每次操作后,SI,DI递增     DF=1,每次操作后,SI,DI递减

13.串传送指令

                    ①.movsb:将ds:si指向的内存单元中的字节送入es:di中,然后根据标志寄存器df位的值,将si和id或增或减,相当于以下指令:

                                ((es)*16+(di))=((ds)*16+(si))

                                if (df==0)  (si)=(si)+1 (di)=(di)+1

                                if (df==1)   (si)=(si)-1 (si)=(si)-1

                    ②.movsw:将ds:si指向的内存字单元中的字送入es:di中,然后根据标志寄存器df位的值将si和di或增或减2。

14.pushf:将标志寄存器的值压栈 popf:是从栈中弹出数据,送入标志寄存器中

 

原创粉丝点击