8086的寄存器

8086的寄存器

8086 有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4类。

(1)通用寄存器

有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个). 顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。

数据寄存器:
AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.
BH&BL=BX(base):基址寄存器,常用于地址索引;
CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.
DH&DL=DX(data):数据寄存器,常用于数据传递。
他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。
指针寄存器和变址寄存器:
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
这4个16位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。
(2)指令指针IP(Instruction Pointer)
指令指针IP是一个16位专用寄存器,它指向当前需要取出的指令字节,当BIU从内存中取出一个指令字节后,IP就自动加1,指向下一个指令字节。注意,IP指向的是指令地址的段内地址偏移量,又称偏移地址(Offset Address)或有效地址(EA,Effective Address)。
(3)标志寄存器FR(Flag Register)
8086有一个16位的标志性寄存器FR,在FR中有意义的有9位,其中6位是状态位,3位是控制位。
OF溢出状态标志位:
OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
DF方向控制标志位:
DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。
IF中断允许控制标志位:
IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:
(1) 当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;
(2) 当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。
TF跟踪控制标志位:
TF该标志可用于程序调试。TF标志没有专门的指令来设置或清除。
(1) 如果TF=1,则CPU处于单步执行指令的工作方式,此时每执行完一条指令,就显示CPU内各个寄存器的当前值及CPU将要执行的下一条指令。
(2) 如果TF=0,则处于连续工作模式。
SF符号状态标志位:
SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。当运算结果没有产生溢出时,运算结果等于逻辑结果(即应该得到的正确的结果),此时SF表示的是逻辑结果的正负,当运算结果产生溢出时,运算结果不等于逻辑结果,此时的SF值所表示的正负情况与逻辑结果相反,即:SF=0时,逻辑结果为负,SF=1时,逻辑结果为正。
ZF零状态标志位:
ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。
AF辅助进位状态标志位:
下列情况下,辅助进位标志AF的值被置为1,否则其值为0:
(1)在字操作时,发生低字节向高字节进位或借位时;
(2)在字节操作时,发生低4位向高4位进位或借位时。
PF奇偶状态标志:
PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。
CF进位状态标志:
CF主要用来反映无符号数运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。
(4)段寄存器(Segment Register)
为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:
CS(Code Segment):代码段寄存器;
DS(Data Segment):数据段寄存器;
SS(Stack Segment):堆栈段寄存器;
ES(Extra Segment):附加段寄存器。

当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS
来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。 所以,程序和其数据组合起来的大小,限制在DS
所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。
备注:由于所讲的是16位cpu(地址线为16个)2的16次幂就是64K,所以16位段地址不能超过64K,超过64K会造成64K以上的地址找不到。

8086寄存器组织结构相关推荐

  1. 8086寄存器简介 (转载从 博客园-首页原创精华区 作者:Zachary.XiaoZhen)

    引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, 像  CPU ...

  2. 8086寄存器的配合使用

    通用寄存器组:可由用户灵活支配,用来寄存参与运算的数据或地址信息. 地址寄存器:专门用来存放地址信息的寄存器. 段寄存器确定存储单元的段地址,指令提供该单元相对于相应段起始地址的16位偏移量. 代码段 ...

  3. 8086寄存器学习笔记-SS 寄存器和 SP 寄存器

    SS 寄存器和 SP 寄存器: SS 寄存器:Stack Segment (堆栈段寄存器) SP 寄存器:Stack Pointer(堆栈指针寄存器) 这两个寄存起是为了访问内存用的,SS为段寄存器, ...

  4. 16位汇编相关寄存器

    文章目录 1 寄存器的组成部分 1.1 8086寄存器组成 1.2 8086处理器是小端模式 2 X86 16位汇编所涉及的寄存器 3 寄存器的用法 3.1 DS和ES 3.2 CS和IP 1 寄存器 ...

  5. x86汇编-1(第一章—第二章)8086处理器基本情况

    第一章:进制 1. 二进制(Binary):0.1 十进制(Decimal):0.1.-.9 十六进制(Hex.0x):0.1.--.9.A.--.F 第二章:处理器.内存.指令.地址.CPU-内存模 ...

  6. 汇编8086复习——基础知识、指令汇总、上机实验踩坑

    8086处理器基础知识 汇编语言是大小写不敏感的低级语言,意思就是mov和MOV是汇编语言来说是一样的,当然大小写混用也是可以的,如Mov 在8086汇编语言里,数字默认是十进制的,如果是其他进制数字 ...

  7. 什么是寄存器(Register)?收藏

    寄存器(Register) 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快. 寄存器的用途: 1.可将寄存器内的数据执行算术及逻辑运算. 2.存于寄存器内的地址 ...

  8. 微机原理与接口技术 重点详解与章节总结——8086微处理器系统结构

    第三章8086微处理器系统结构 8086 CPU结构 8086 CPU是Intel系列的16位微处理器,有40个引脚.它的外部数据总线为16位,地址线为20根.因为可用20位地址,所以可寻址的地址空间 ...

  9. 汇编中各寄存器的作用

    转自:http://blog.csdn.net/ly131420/article/details/8741225 寄存器 英文名称:Register 寄存器定义 寄存器是中央处理器内的组成部份.寄存器 ...

最新文章

  1. 访谈实录:网管员如何踏上高薪之路(1)
  2. CentOS学习笔记 - 7. jekins安装
  3. CMD(SA400 Command)
  4. 1977标准_超过8分,就是痛风!附痛风诊断新标准和治疗原则
  5. 5分钟在超能云(SuperVessel)上免费创建属于自己的大数据环境
  6. 高级语言程序设计(c )试卷,《高级语言程序设计C》试卷
  7. ASP.NET 2.0 之 Master Page 学习笔记
  8. 初步学习pg_control文件之八
  9. 桌面Linux市场份额终于突破1%
  10. 个人站立会议第二阶段04
  11. Mac 本地搭建服务器实现itms-services方式安装ipa(自制证书)
  12. POJ 2192 Zipper (简单DP)
  13. 搭建直播平台,Android端直播APP源码如何实现礼物效果
  14. word文档目录样式如何设置
  15. VUE v-modle 实现 |||| uniapp 父子组件实现 v-modle
  16. 2023最新!QQ接入ChatGpt!!!保姆级教程
  17. html找到多行注释报错,前端注释总结
  18. 大数据技术的概论(2)
  19. 详细解析集成运算放大电路比例运算的工作原理
  20. 2021年危险化学品生产单位安全生产管理人员最新解析及危险化学品生产单位安全生产管理人员作业模拟考试

热门文章

  1. php程序设计依赖注入_PHP控制反转和依赖注入
  2. oracle如何进入管理器,oracle 启动管理器
  3. C++知识点43——解引用运算符和箭头运算符的重载及智能指针类的实现
  4. python punctuation_经验拾忆(纯手工)=gt; Python基本数据类型_Python - UCloud云社区...
  5. 数独基本规则_数独解题技巧总结
  6. 【问题】vs IIS破除文件上传限制最全版
  7. 随机森林案例分析:德国银行信贷风险分析
  8. 物联网帝国——孙正义职业生涯最大的豪赌
  9. Oracle别名大小写 -----解决方案
  10. PHP之使用网络函数和协议函数