AZ0NE

关于我

网络安全爱好者
    • 8086CPU的flag寄存器的结构: 

    flag的1、3、5、12、13、14、15位在8086CPU中没有使用,不具有任何含义。而0、2、4、6、7、8、9、10、11位都具有特殊的含义


  • ZF标志

    • flag的第6位是ZF,零标志位。

       它记录相关指令执行后,

    • 结果为0 ,ZF = 1
    • 结果不为0,ZF = 0
    •  例子:比如:

         mov ax,1

         sub ax,1  

       指令执行后,结果为0,则ZF = 1。

            mov ax,2

         sub ax,1  

       指令执行后,结果为1,则ZF = 0。

    • 对于ZF的值,我们可以这样来看,ZF标记相关指令的计算结果是否为0,如果为0,则在ZF要记录下“是0”这样的肯定信息。
    • 在计算机中1 表示逻辑真,表示肯定,所以当结果为0的时候 ZF=1,表示“结果是0 ”。如果结果不为0,则ZF要记录下“不是0”这样的否定信息。
    • 在计算机中0表示逻辑假,表示否定,所以当结果不为0 的时候ZF=0,表示“结果不是0”。


    • PF标志

    • flag的第2位是PF,奇偶标志位。

       它记录指令执行后,结果的所有二进制位中1的个数:

    • 为偶数,PF = 1;
    • 为奇数,PF = 0。
    • 示例
    • 指令:mov al,1

                add al,10

       执行后,结果为00001011B,其中有3(奇数)个1,则PF=0;

    • 指令:mov al,1

                 or al,10

       执行后,结果为00000011B,其中有2(偶数)个1,则PF=1;


                

SF标志

  • flag的第7位是SF,符号标志位。

   它记录指令执行后,

  • 结果为负,SF = 1;
  • 结果为正,SF = 0。
  • 有符号数与补码
  • 示例

      mov al,10000001B

      add al,1

      结果: (al)=10000010B


标签:标识指令 汇编

评论
© AZ0NE | Powered by LOFTER