文章目录

  • 1 通用寄存器
  • 2 标志寄存器
    • 2.1 CF 进位标志位
    • 2.2 ZF 零标志位
    • 2.3 SF 符号标志位
    • 2.4 OF 溢出标志位
    • 2.5 PF 奇偶标志位
    • 2.6 AF 辅助进位标志
    • 2.7 TF 跟踪标志
    • 2.8 DF 方向标志
    • 2.8 IF 中断标志

1 通用寄存器

这些的寄存器是程序执行代码最最常用,也最最基础的寄存器,程序执行过程中,绝大部分时间都是在操作这些寄存器来实现指令功能。
所谓通用,即这些寄存器CPU没有特殊的用途,交给应用程序“随意”使用。注意,对于有些寄存器,CPU有一些潜规则,用的时候要注意。

eax:通常用来执行加法,函数调用的返回值一般也放在这里面
ecx:通常用来作为计数器,比如for循环
edx:读写I/O端口时,edx用来存放端口号
esp:栈顶指针,指向栈的顶部
ebp:栈底指针,指向栈的底部,通常用ebp+偏移量的形式来定位函数存放在栈中的局部变量
esi:字符串操作时,用于存放数据源的地址
edi:字符串操作时,用于存放目的地址的,和esi两个经常搭配一起使用,执行字符串的复制等操作
eip:指向CPU当前指向的指令
ebx: 数据存取

2 标志寄存器

CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能)具有以下3中作用。

  1. 用来存储相关指令的某些执行结果。
  2. 用来为CPU执行相关指令提供行为依据。
  3. 用来控制CPU的相关工作方式。

8086CPU的flag寄存器的结构如图下所示

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
OF DF IF TF SF ZF AF PF CF
空出来的说明在8086CPU中没有使用,布局有任何含义。
它反映了CPU运算的状态特征并且存放某些控制标志

2.1 CF 进位标志位

定义:当执行一个加法(减法)运算时,最高位产生进位(或借位)时,CF为1,否则为0。

实例:

1. 修改 eax:FFFFFFFF
2. 写指令
add eax,0x13.结果:
eax:00000000
C:  1
A:1

2.2 ZF 零标志位

定义:若当前的运算结果为零,则ZF为1,否则为0。

  1. flag的第6位是ZF,0标志位。
  2. 记录相关指令执行后,其结果是否为0,
    if = 0; zf = 1
    if != 0; zf = 0
    eg.

    mov ax,1
    sub ax,1
    执行后,结果为0,则zf=1
    
    mov ax,1
    add ax,0
    执行后,结果为0,则zf=1,表示“结果是0”
    
    mov ax,1
    or ax,0
    执行后,结果不为0,则zf=0,表示“结果非0”
    

2.3 SF 符号标志位

定义:该标志位与运算结果的最高位相同。即运算结果为负,则SF为1,否则为0。

2.4 OF 溢出标志位

若运算结果超出机器能搞表示的范围称为溢出,此时OF为1,否则为0。

2.5 PF 奇偶标志位

定义:当运算结果的最低16位中含1的个数位偶数,则PF为1,否则为0。

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

  2. 记录相关指令执行后,其结果的所有bit位中1个数是否为偶数,
    if 偶数 则 pf = 1
    if 奇数 则 pf = 0
    eg.

    mov al,1
    add al,10
    执行后,结果为00001011B,其中3(奇数)个1,则 pf = 0;
    
    mov al,1
    or al,2
    执行后,结果为00000011B,其中有2(偶数)个1,则 pf = 1;
    
    sub al,al
    执行后,结果为00000000B,其中有0(偶数)个1,则 pf = 1;
    

2.6 AF 辅助进位标志

定义:一个加法(减法)运算结果的低4位想高4位有进位(或借位)时,则AF=1,反之AF=0。

2.7 TF 跟踪标志

定义:该标志位为方便程序调试而设置。若TF=1,8086/8088 CPU处于单步工作方式,即在每条指令执行结束后,产生中断。

2.8 DF 方向标志

定义:该标志位用来控制处理指令的处理方向,若DF=1,则串处理过程中地址自动递减,否则自动递增。

2.8 IF 中断标志

等等

通用寄存器与标志位寄存器OF/DF/IF/TF/SF/ZF/AF/PF相关推荐

  1. 汇编语言中常用指令对标志位寄存器的影响

    参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...

  2. 微型计算机DEC影响零标志位吗,汇编语言中常用指令对标志位寄存器的影响

    参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...

  3. OD-标志寄存器判断语句对照表(汇编标志位寄存器对照表)

  4. 汇编标志位及操作讲解

    参考网上的资料.整理了我认为比较常用的标志位知识点. 一.SF,CF,ZF,OF,PF,ZF 讲解 SF=0(最高位是什么,ZF就是什么) CF=1(最高位有进位或借位就置1) ZF=0(结果为0,Z ...

  5. Ollydbg中C标志位P标志位A标志位Z标志位以及S,T,D,0标志位含义详解

    转载自https://www.cnblogs.com/whzym111/p/6374855.html 知识点: l 标志位 置位相关指令   l 标志寄存器PSW 标志寄存器PSW(程序状态字寄存器P ...

  6. 汇编语言标志位 含义 NV UP EI NG NZ AC PE CY

    缩写原意:<?xml:namespace prefix = o /> Overflow of = OV NV [No Overflow] Direction df = DN (decrem ...

  7. debug 标志位说明

       of  df  if  sf   zf   af   pf   cf 标志位为1 ov  dn ei  ng  zr   ac  pe  cy 标志位为0 nv  up di  pl   nz ...

  8. DOSBox debug中查看标志位

    debug中的标志位显示顺序  OF DF IF SF ZF AF PF CF OF 标志位(溢出)  OF = 1, 显示为OV  OF = 0, 显示为NV DF 标志位(方向)  DF = 0, ...

  9. Win32汇编:数组与标志位测试总结

    整理复习汇编语言的知识点,以前在学习<Intel汇编语言程序设计 - 第五版>时没有很认真的整理笔记,主要因为当时是以学习理解为目的没有整理的很详细,这次是我第三次阅读此书,每一次阅读都会 ...

最新文章

  1. GAN的理解与TF的实现
  2. wp7上MD5加密类
  3. 2021年第一天,腾讯给青年科学家的300万大红包又来了
  4. java (10) 集合类
  5. 据说这是全世界最最最权威、最准的爱情测试
  6. 用筛选法求100以内的素数(数组)
  7. C++数据结构之链式结构
  8. python datetime计算时间差_用datetime计算时间差
  9. MFC中创建线程实例
  10. mysql取消操作系统_Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)...
  11. recycleview 自动循环滚动_滚动真空包装机包装东北冷面和400真空机包装东北冷面的比较...
  12. 计算机浏览器应用程序,基于浏览器的应用程序
  13. cuda11+pytorch安装
  14. spark 稀疏矩阵存储详细解读
  15. c语言出100道计算题,C语言例题100道
  16. 手机号归属地数据库;根据手机号查找对应的归属地;
  17. ffmpeg 反复推流_FFmpeg 推流问题记录
  18. Ubuntu查看联想笔记本无线网卡内核并安装驱动
  19. Shopee菲律宾站如何选品?听Shopee Man本土多店管理系统告诉你
  20. (2017.03.12更新)CnCrypt文件保险箱1.19,兼容TrueCrypt加密卷

热门文章

  1. OpenCV 视频人数统计研究
  2. @keyup.enter.native不生效问题解决
  3. “夏邑女首富”刘敏创建的敏涵控股被质疑:坚持做难而正确的事
  4. Android Process 'command 'C:\Users\Win\AppData\Local\Android\Sdk\build-t non-zero exit value 1错误解决方案
  5. cocos2d-x ui::Button 的setEnabled 和 setVisible 的区别,setEnabled后按钮却不见了
  6. 注释(单行注释、多行注释、文档注释)
  7. Ubuntu更改密码及hostname步骤
  8. 网络劫持是什么?网页被篡改劫持怎么修复(终级方案)网页劫持如何修复?
  9. 只用div+CSS做淘宝手机端首页
  10. 如何防止破解?MCU加密技术揭秘