寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

寄存器的用途:

1.可将寄存器内的数据执行算术及逻辑运算。

2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。

3.可以用来读写数据到电脑的周边设备。

8086 有8个8位数据寄存器,

这些8位寄存器可分别组成16位寄存器:

AH&AL=AX:累加寄存器,常用于运算;

BH&BL=BX:基址寄存器,常用于地址索引;

CH&CL=CX:计数寄存器,常用于计数;

DH&DL=DX:数据寄存器,常用于数据传递。

为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:

CS(Code Segment):代码段寄存器;

DS(Data Segment):数据段寄存器;

SS(Stack Segment):堆栈段寄存器;

ES(Extra Segment):附加段寄存器。

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

除了前面所提的寄存器外,还有一些特殊功能的寄存器:

IP(IntructionPointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;

SP(StackPointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。

BP(BasePointer):基址指针寄存器,可用作SS的一个相对基址位置;

SI(SourceIndex):源变址寄存器可用来存放相对于DS段之源变址指针;

DI(Destination Index):目的变址寄存器,可用来存放相对于 ES段之目的变址指针。

还有一个标志寄存器FR(Flag Register),有九个有意义的标志(

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:状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变

SF:符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为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。)

以上是8086寄存器的整体概况, 自80386开始,PC进入

32bit时代,其寻址方式,寄存器大小, 功能等都发生了变化,要想学习这方面知识请参考相应资料

转载于:https://www.cnblogs.com/cwbo-win/articles/2862194.html

寄存器是什么 有什么作用相关推荐

  1. 常用的寄存器( bss段的作用)

     一个程序本质上都是由 bss段.data段.text段三个组成的.这样的概念,不知道最初来源于哪里的规定,但在当前的计算机程序设计中是很重要的一个基本概念.而且在嵌入式系统的设计中也非常重要,牵 ...

  2. CPU各个寄存器作用

    程序员的代码最终的实现就是对寄存器和内存进行一些操作,知道CPU中各个寄存器的作用,能够对代码有更深刻的了解. 文章目录 CPU各个寄存器作用(8086): CS,IP bx,si,di,bp ss, ...

  3. iOS底层(三)-状态寄存器

    003-状态寄存器    CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同).这种寄存器在ARM中,被称为状态寄存器就是CPSR(current program sta ...

  4. 汇编语言--标志寄存器

    标志寄存器      CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作用. 用来存储相关指令的某些执行结果: 用来为CPU执行相关指令提供行为依据: 用 ...

  5. 汇编语言之标志寄存器

     1.标志寄存器 CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作 用: 1. 用来存储相关指令的某些执行结果. 2. 用来为CPU执行相关指令提供 ...

  6. 二十二、标志寄存器与栈(代码设计安全,与子程序寄存器安全类似)

    1.子程序安全调用 子程序的设计要以保持寄存器值的平衡,栈空间的平衡为原则.     子程序的设计在必要时候,需要保持标志寄存器的平衡. 2.标志寄存器 在计算机中,有一个专用16位的寄存器FLAGS ...

  7. 五、CPU详解、寄存器详解、标志寄存器详解

    控制器.运算器.寄存器组成CPU 控制器:领导 运算器:员工,计算数据 寄存器:寄存数据信息,在内存与运算器之间 硬盘运算速度<内存运算速度<寄存器运算速度 寄存器:(寄存器16位[寄存器 ...

  8. 【10天基于STM32F401RET6智能锁项目实战第2天】GPIO与寄存器

    GPIO与寄存器 一.GPIO的作用.数量与命名 二.GPIO口的四大模式 三.寄存器 一.GPIO的作用.数量与命名 二.GPIO口的四大模式 三.寄存器 更多的寄存器的实际操作会在后面的代码中讲解 ...

  9. 汇编常见寄存器以及标志位

    汇编常见寄存器以及标志位 通用寄存器 简写 英文全称 中文 作用 AX accumulator 累加器 存放操作数,与外部设备 BX base 通用寄存器 基址寄存器(计算存储器地址时用) CX co ...

  10. ATA接口寄存器描写叙述

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mao0514/article/details/32135815 ATA接口寄存器描写叙述 3.ATA ...

最新文章

  1. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...
  2. Ubuntu下找不到ttyUSB*问题解决
  3. complete_code_Chapter2
  4. 代码管理工具 Git
  5. 设置行内元素宽高和背景色后,行内元素文本不水平垂直居中解决方案
  6. boost::lexical_cast用法的测试程序
  7. jquery 统计统计子标签的个数
  8. Kubernetes各个组件的概念
  9. java callable接口_Java多线程之Callable接口的实现有返回值的线程
  10. php private ,public protected三者的区别
  11. 如何制作学术Poster?
  12. smplayer变成电视操作步骤
  13. html 内使用复制功能
  14. python word文档文字批量替换与删除
  15. 万能显卡驱动win7_AMD发布Radeon 20.11.1驱动:优化四款新游戏、性能提升7%-AMD,Radeon,驱动,RX 5700 XT ——快科技(驱动之家旗下媒体)-...
  16. 获取网页上没有下载链接的视频音频资源 火狐浏览器插件 Video DownloadHelper
  17. Android学习笔记_28_手势识别
  18. C语言语句篇-------赋值语句
  19. maya拆完uv,画好贴图后导入,模型上贴图显示混乱
  20. 根据当前行情,计算历史上与当前最相似的行情python实现

热门文章

  1. paip.sql2008 客户端软件绿色版V319
  2. Julia :复合类型struct当索引时
  3. 亿欧:深耕开放银行,Temenos产品创新和并购战略双轮驱动
  4. Julia: 由0.3 升级到0.4 版本的变化
  5. 帮您管好云:阿里云混合云管理平台发布 | 凌云时刻
  6. CIO:权大、钱多、但难干 | 凌云时刻
  7. 【预测模型】基于matlab离散状态空间模型模拟预测控制仿真系统(单输入单输出)【含Matlab源码 1537期】
  8. 毕设题目:Matlab车辆计数
  9. 【优化选址】基于matlab蚁群算法求解电动汽车充电站与换电站选址优化问题【含Matlab源码 1182期】
  10. 直线的两点式、一般式以及点到直线的垂点