标志寄存器

标志寄存器
 15  14  13  12  11  10  9   8  7  6  5  4  3  2  1   0
                         O    D  I   T  S  Z     A      P       C
 CF进位标志位:         主要用于运算是否产生进位或借位,进位置1,其他情况是0
PF奇偶标志:                 用于反映运算结果中1的个数,如果1的个数为偶数,则OF被置1,否则清零
AF 辅助进位标志位  在字节和字操作,低半字节向高字节进位或进位,辅助进位标志位AF被置1,否则AF清0 
ZF零标志位:              用于反映运算结果是否为0,如果运算结果为0,则ZF置1,否则0
SF符号标志                  用于反映运算结果的符号位,运算结果最高位位1,则SF被置1则0

TF追踪标志                 TF置1后,CPU进入单步方式
IF中断允许标志         IF为1时,CPU能够响应外部的可屏蔽中断请求, 
                            IF为0时,CPU能够不响应外部的可屏蔽中断请求
 DF方向标志               为1时,串操作指令按减方式,改变有关的存储器指针值 
                            DF为0时,串操作指令按加方式,改变有关的存储器指针值
OF溢出标志位             用于反映有符号加减运算是否溢出,如果超出了8位或16位的表示范围,称为溢出。
                  如溢出,则OF置   1,  否则置0(两个正数相加得出负数或者两个负数两家得出正数) 



/*
push 1
popf
*/cf=1
       
/*
0000111111010101
push 0fd5h
popf //标志寄存器全置1
*/ 
CF 进位借位标志位,用于反映运算结果否产生加减乘除法进位借位,进位借位置1,其他情况为0
      add,adc,cmp,sub,sbb,neg,xor,mul,imul,clc,stc

PF 奇偶标志位,用于反映运算结果1的个数为偶数,偶数置1,奇数清0
      inc,dec,sub,add,cmp

AF 辅助进位标志位,字节或字操作低半字节向高字节进位,进位AF置1,否则清0
     inc

ZF 符号标志位,用于反映运算结果是否为0,为0置1,否则清0
     xor,add,sub,inc,test,and,or,cmp

SF 符号标志位,用于反映运算结果是正数还是负数,为1即是负数,为0即是正数
    cmp,sub,xor,test

 

cmp eax,eax  影响标志位
jl 00401000  根据标志位进行跳转

jl  小于      sf置1跳转  
jle 小于等于  sf置1或zf置1跳转
jg  大于      zf置0跳转
jge 大于等于  sf置0跳转
jb  低于      cf置1跳转
jbe 低于等于  zf置1跳转
jnb 不低于    cf置0跳转
ja  高于      zf置0跳转
je  等于      zf置1跳转
jnz 不等于    zf置0跳转
jo  溢出      of置1跳转
jno 不溢出    0f置0跳转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值