上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
8086/8088寄存器组
作者:未知 申领版权
2010年12月12日 共有 2371 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:
    

8086/8088寄存器组

在8086/8088系统中,程序员可以使用的寄存器有通用寄存器、段寄存器和标志寄存器。这些寄存器中某些有特定的用途,最常用的是通用寄存器。

    

2.1.1 8086/8088CPU寄存器组

8086/8088包括四个16位的数据寄存器,两个16位的指针寄存器,两个16位变址寄存器,一个16位的指令指针,四个16位段寄存器,一个16位标志寄存器。这14个16位寄存器分为四组,他们的名称和分组情况如图所示。
    
    图2.1   8086 / 088CPU寄存器分组
    1. 通用寄存器
    数据寄存器、指针寄存器和变址寄存器统称为通用寄存器。之所以这样称呼,是因为这些寄存器出了各自规定的专门用途外,他们均可以用于传送和暂存数据,还可以保存算术逻辑运算中的操作数和运算结果。
    1)数据寄存器
    数据寄存器主要用于保存操作数运算结果等信息,他们的存在节省了为存取操作数所需占用总线和访问存储器的时间。
    四个16位的数据寄存器AX,BX,CX,DX可分解成八个独立的8位寄存器,这八个8位的寄存器有各自的名称,如图2.1所示,分别称为AH,AL,BH,BL,CH,CL,DH,DL,并且均可以独立存取。名称中的字母H表示高,L表示低。如AH表示高8位,AL表示低8位,AH寄存器和AL寄存器的合并就是AX寄存器。其他寄存器类推。
    AX和AL寄存器又成为累加寄存器(Accumulator)。一般通过累加器进行的操作所用的时间可能最少,此外累加器还有许多专门的用途,所以累加器使用的最普遍。
    BX寄存器成为基(BASE)地址寄存器。他是四个寄存器中唯一可作为存储器指针使用的寄存器。
    CX寄存器称为计数(COUNT)寄存器。在字符串操作和循环操作时,用它来控制重复循环操作次数。在一位操作时,CL寄存器用于保存移位的位数。
    DX寄存器称为数据(DATA)寄存器。在进行32位的乘除法操作时,用它存放被除数的高16位或余数。它也用于存放I/O端口地址。
    2)变址和指针寄存器
    变址和指针寄存器主要用于存放某个存储单元的偏移地址,或某组存储单元开始地址的偏移,即作为存储器(短)指针使用。作为通用寄存器,它们也可以保存16位算术逻辑运算中的操作数和运算结果,有时运算结果就是需要的存储单元地址的偏移。注意,16位的变址寄存器和指针寄存器不能分解成8位寄存器使用。利用变址寄存器和指针寄存器不仅能够有效的缩短机器指令的长度,而且能够实现多种存储器操作数的寻址,从而方便地实现对多种类型数据的操作。
    SI和DI寄存器称为变址寄存器。在字符串操作中,规定由SI给出源指针,由DI给出目的指针,所以SI也称为源变址(Source   Index)寄存器,DI也称为目的变址(Destination  Index)寄存器。当然,SI和DI也可作为一般存储器指针使用。
    BP和SP寄存器称为指针寄存器。BP主要用于给出堆栈中数据区基址的偏移地址,从而方便的实现直接存取堆栈中的数据,所以BP也称为基指针(Base  Pointer)寄存器。正常情况下,SP只作为堆栈指针(Stack Pointer)使用,即保存堆栈栈顶地址的偏移。堆栈是一片存储区域,我们将在后面的章节中详细介绍堆栈操作和堆栈的作用。
    表2.1  通用寄存器的专门用途

    
寄存器
    
用     途
    
AX
    
字乘法,字除法,字 I/ O
    
AL
    
字节乘法,字节除法,字节I/ O,十进制算术运算
    
AH
    
字节乘法,字节除法
    
BX
    
存储器指针
    
CX
    
串操作或循环控制中的计数器
    
CL
    
移位计数器
    
DX
    
字乘法,字除法,间接I/O
    
SI
    
存储器指针(串操作中的源指针)
    
DI
    
存储器指针(串操作中的目的指针)
    
BP
    
存储器指针(存取堆栈的指针)
    
SP
    
堆栈指针
    

 
    2. 段寄存器
    8086/8088CPU依赖其内部的四个段寄存器实现寻址1M字节物理地址空间。8086/8088把1M字节地址空间分成若干逻辑段,当前使用段的段值存放在段寄存器中。由段值和段内偏移形成20位地址,我们将在下节详细介绍形成20位地址的具体方法。
    8086/8088CPU的四个段寄存器均是16位的,分别称为代码段(Code Segment)寄存器CS,数据段(Data Segment)寄存器DS,堆栈段(Stack Segment)寄存器SS,附加段(Extra Segment)寄存器ES。由于8086/8088有这四个寄存器,所以有四个当前使用段可直接存取,这四个当前段分别称为代码段、数据段、堆栈段和附加段。
    3. 指令指针  
    8086/8088CPU中的指令指针IP(Instruction Pointer)也是16位的,它给出接着要执行的指令在代码段中的偏移。(实际上接着要执行的指令已被预取到指令队列,除非发生转移。)

    

2.1.2  标志寄存器

8086/8088 CPU中有一个16位的标志寄存器,包含了9个标志,主要用于反映处理器的状态和运算结果的某些特征。各标志在标志寄存器中的位置如下所示。
    15   14   13   12   11   10    9    8    7    6    5    4    3    2    1    0

    
 
    
 
    
 
    
 
    
OF
    
DF
    
IF
    
TF
    
SF
    
ZF
    
 
    
AF
    
 
    
PF
    
 
    
CF
    

 
    有些指令的执行会影响部分标志,而有些指令的执行不会影响标志;反过来,有些指令的执行受某些标志的影响,有些指令的执行不受标志的影响。所以,程序员要充分注意指令与标志的关系。
    9个标志可分成两组,第一组6个标志主要受加减运算和逻辑运算结果的影响,称为运算结果标志,第二组标志不受运算结果的影响,称为状态控制标志。
    运算结果标志包括以下6位:
    OF(Overflow Flag)溢出标志,在运算过程中,如操作数超出了机器能表示的范围,则称为溢出。此时OF位置1,否则置0。
    SF(Sign Flag)符号标志,记录运算结果的符号,结果为负时置1,否则置0。
    ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0。
    CF(Carry Flag)进位标志,记录运算时有效位产生的进位值。例如,执行加法指令时,最高有效位有进位时置1,否则置0。
    AF(Auxiliary carry Falg)辅助进位标志,记录运算时第3位(半个字节)产生的进位值。例如,执行加法指令时第3位有进位时置1,否则置0。
    PF(Parity Flag)奇偶标志,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。
    控制标识位有三个:
    DF(Direction Flag)方向标志,在串处理指令中控制处理信息的方向用。当DF位为1时,每次操作后是变址寄存器SI和DI减量,这样就是串处理从高地址向低地址方向处理。当DF为0时,则使SI和DI增量,使串处理从低地址向高地址方向处理。8086/8088提供的专门用于设置方向标志DF的指令是STF,专门用于清除DF的指令时CLD。
    IF(Interrupt Flag)中断向量,当IF为1时,允许中断,否则关闭中断。有关中断原理将在后面详细讲解。8086/8088提供的专门用于设置中断允许标志IF的指令是STI,专门用于清IF的指令是CLI。
    TF(Trap Flag)追踪标志,用于单步操作方式,当追踪标志TF被置1后,CPU进入单步方式。所谓单步方式是指在一条指令执行后,产生一个单步中断,这主要用于程序的调试。8086/8088没有专门设置和清除TF标志的指令,用通过其他方法设置或清除TF。
    
    表2.2  PSW中标志位的符号表示(Debug调试中使用)

    
标志名
    
标志位为1
    
标志位为0
    
OF   溢出(是/否)
    
OV
    
NV
    
DF  方向(减量/增量)
    
DN
    
UP
    
IF  中断(允许/关闭)
    
EI
    
DI
    
SF  符号(负/正)
    
NG
    
PL
    
ZF  零(是/否)
    
ZR
    
NZ
    
AF  辅助进位(是/否)
    
AC
    
NA
    
PF  奇偶(偶/奇)
    
PE
    
PO
    
CF  进位(是/否)
    
CY
    
NC
    

 

相关新闻

犹太商道---抓信息里的钱
物质分离提纯的方法主要有物理方法和化学方法
有机反应的主要类型
1.3 Intel 系列CPU简介
控制寄存器
数值运算协处理器
算术运算指令
第3章 操作数的寻址方式
附录二:Turbo C(V2.0)编译错误信息

您可能对这些感兴趣  

干货分享|10本最受国外孩子喜爱的英文词典——上
从孩子的表现看父母的缺点!请家长对号入座,看看你是哪一类?
20条制作PPT的视觉原则
培训简史:培训者必知的历史轨迹
广田丰管理培训生人才培养调查报告
第4讲 作为上司的职业经理
第3讲 作为同事的职业经理
第2讲 作为下属的职业经理
第1讲 培养经理人的管理素养
酒店前台新员工上岗培训计划

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》