计组(day7)8088/8086CPU的内部寄存器


8088/8086内部共有14个16位寄存器。按其功能可以分为三大类:通用寄存器(8个)、段寄存器(4个)、控制寄存器(2个)
在这里插入图片描述

通用寄存器

通用寄存器包括数据寄存器、地址指针寄存器和变址寄存器。

  • 数据寄存器 AZ、BX、CX、DX
  1. 一般用于存放参与运算的数据或运算的结果
  2. 每一个数据寄存器都是16位寄存器,但又可将高、低8位分别作为两个独立的8位寄存器使用。它们的高8位记作AH、BH、CH、DH,低8位记作AL、BL、CL、DL。
  3. 这种灵活的使用方法给编程带来了极大的方便,既可以处理16位数据,也能处理8位数据。
  4. 数据寄存器除作为通用寄存器外,各自的习惯用法
    AX(Accumulator):累加器,常用于存放算术逻辑运算中的操作数,另外所有的I/O指令都使用累加器与外设接口传送信息
    BX(Base):基址寄存器,常用来访问内存时的基地址
    CX(Count):计数寄存器,在循环和串操作指令中用作计数器
    DX(Data):数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口的地址
    另外在做双字长乘除法运算时,DX与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位。
  • 地址指针寄存器SP、BP
  1. SP(Stack Pointer):堆栈指针寄存器,它在堆栈操作中用来存放栈顶偏移地址,永远指向堆栈的栈顶。
  2. BP(Base Pointer):基址指针寄存器。一般常用来存放访问内存时的基地址,但它通常与SS寄存器配对使用。(比较:BX通常与DS寄存器配对使用。)
    SP、BP的主要用途是存放内存单元的偏移地址,特别是SP在访问堆栈时作为指向堆栈栈顶的指针。
  • 变址寄存器SI、DI。
  1. SI(Source Index)称为源变址寄存器
  2. DI(Destination Index)称为目的变址寄存器
    它们常常在变址寄存器中作为索引指针。

段寄存器CS、SS、DS、ES

  1. CS(Code Segment)称为代码段寄存器
  2. SS(Stack Segment)称为堆栈段寄存器
  3. DS(Data Segment)称为数据段寄存器
  4. ES(Extra Segment))称为附加段寄存器
    段寄存器用于存放段基址,即起始地址的高16位。

控制寄存器IP

  • IP(Instruction Pointer)称为指令指针寄存器,用以存放预取指令的偏移地址。CPU取指令时总是以CS为段基址,以IP为段内偏移地址。当CPU从CS段中偏移地址为(IP)的内存单元中取出指令代码的一个字节后,IP自动加1,指向指令代码的下一个字节。用户不能直接访问IP。
  • FLAGS 称为标志寄存器或程序状态字(PSW),它是16位寄存器,但只使用其中的9位。这9位包括6个状态标志和3个控制标志。
    在这里插入图片描述

标志寄存器FLAGS

  • 状态标志位记录了算术和逻辑运算结果的一些特征,如:结果是否为0,是否有进位、借位,结果是否溢出等。不同指令对标志位具有不同的影响。
  1. CF(Carry Flag):进位标志位。当进行加(减)法运算时,若最高位向前有进(借)位,则CF=1,否则CF=0。
  2. PF(Parity Flag):奇偶标志位。当运算结果的低8位中1的个数为偶数时PF=1,为奇数时PF=0。
  3. AF(Auxiliary Carry Flag):辅助进位标志位。在加(减)法操作中,D3向D4有进位(借位)发生时,AF=1,否则AF=0。DAA和DAS指令测试这个标志位,以便在BCD加法或减法之后调整AL中的值。
  4. ZF(Zero Flag):零标志位。当运算结果为零时ZF=1,否则ZF=0。
  5. SF(Sign Flag):符号标志位。当运算结果的最高位为1时SF=1,否则SF=0。
  6. OF(Overflow Flag):溢出标志位。当算术运算的结果超出了带符号数的范围,即溢出时OF=1,否则OF=0。
  • 控制标志位用于设置控制条件。控制标志被设置后便对其后的操作产生控制作用。
  1. TF(Trace Flag)陷阱标志位: 当TF=1时,激活处理器的调试特性,使CPU处于单步执行指令的工作方式。每执行一条指令后,自动产生一个单步中断,从而使用户能逐条指令地检查程序。
  2. IF(Interrupt Flag)中断允许标志位:IF=1使CPU可以响应可屏蔽中断请求。IF=0使CPU禁止可屏蔽中断请求。IF的状态对不可屏蔽中断及内部中断没有影响。
  3. DF(Direction Flag)方向标志位:方向标志位在执行串操作指令时控制操作的方向。DF=1时按减地址方式进行,即从高地址开始,每进行一次操作,地址指针自动减1(或减2);DF=0时按增地址方式进行。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值