寄存器是什么 有什么作用
寄存器是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
寄存器是什么 有什么作用相关推荐
- 常用的寄存器( bss段的作用)
一个程序本质上都是由 bss段.data段.text段三个组成的.这样的概念,不知道最初来源于哪里的规定,但在当前的计算机程序设计中是很重要的一个基本概念.而且在嵌入式系统的设计中也非常重要,牵 ...
- CPU各个寄存器作用
程序员的代码最终的实现就是对寄存器和内存进行一些操作,知道CPU中各个寄存器的作用,能够对代码有更深刻的了解. 文章目录 CPU各个寄存器作用(8086): CS,IP bx,si,di,bp ss, ...
- iOS底层(三)-状态寄存器
003-状态寄存器 CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同).这种寄存器在ARM中,被称为状态寄存器就是CPSR(current program sta ...
- 汇编语言--标志寄存器
标志寄存器 CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作用. 用来存储相关指令的某些执行结果: 用来为CPU执行相关指令提供行为依据: 用 ...
- 汇编语言之标志寄存器
1.标志寄存器 CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作 用: 1. 用来存储相关指令的某些执行结果. 2. 用来为CPU执行相关指令提供 ...
- 二十二、标志寄存器与栈(代码设计安全,与子程序寄存器安全类似)
1.子程序安全调用 子程序的设计要以保持寄存器值的平衡,栈空间的平衡为原则. 子程序的设计在必要时候,需要保持标志寄存器的平衡. 2.标志寄存器 在计算机中,有一个专用16位的寄存器FLAGS ...
- 五、CPU详解、寄存器详解、标志寄存器详解
控制器.运算器.寄存器组成CPU 控制器:领导 运算器:员工,计算数据 寄存器:寄存数据信息,在内存与运算器之间 硬盘运算速度<内存运算速度<寄存器运算速度 寄存器:(寄存器16位[寄存器 ...
- 【10天基于STM32F401RET6智能锁项目实战第2天】GPIO与寄存器
GPIO与寄存器 一.GPIO的作用.数量与命名 二.GPIO口的四大模式 三.寄存器 一.GPIO的作用.数量与命名 二.GPIO口的四大模式 三.寄存器 更多的寄存器的实际操作会在后面的代码中讲解 ...
- 汇编常见寄存器以及标志位
汇编常见寄存器以及标志位 通用寄存器 简写 英文全称 中文 作用 AX accumulator 累加器 存放操作数,与外部设备 BX base 通用寄存器 基址寄存器(计算存储器地址时用) CX co ...
- ATA接口寄存器描写叙述
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mao0514/article/details/32135815 ATA接口寄存器描写叙述 3.ATA ...
最新文章
- java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...
- Ubuntu下找不到ttyUSB*问题解决
- complete_code_Chapter2
- 代码管理工具 Git
- 设置行内元素宽高和背景色后,行内元素文本不水平垂直居中解决方案
- boost::lexical_cast用法的测试程序
- jquery 统计统计子标签的个数
- Kubernetes各个组件的概念
- java callable接口_Java多线程之Callable接口的实现有返回值的线程
- php private ,public protected三者的区别
- 如何制作学术Poster?
- smplayer变成电视操作步骤
- html 内使用复制功能
- python word文档文字批量替换与删除
- 万能显卡驱动win7_AMD发布Radeon 20.11.1驱动:优化四款新游戏、性能提升7%-AMD,Radeon,驱动,RX 5700 XT ——快科技(驱动之家旗下媒体)-...
- 获取网页上没有下载链接的视频音频资源 火狐浏览器插件 Video DownloadHelper
- Android学习笔记_28_手势识别
- C语言语句篇-------赋值语句
- maya拆完uv,画好贴图后导入,模型上贴图显示混乱
- 根据当前行情,计算历史上与当前最相似的行情python实现
热门文章
- paip.sql2008 客户端软件绿色版V319
- Julia :复合类型struct当索引时
- 亿欧:深耕开放银行,Temenos产品创新和并购战略双轮驱动
- Julia: 由0.3 升级到0.4 版本的变化
- 帮您管好云:阿里云混合云管理平台发布 | 凌云时刻
- CIO:权大、钱多、但难干 | 凌云时刻
- 【预测模型】基于matlab离散状态空间模型模拟预测控制仿真系统(单输入单输出)【含Matlab源码 1537期】
- 毕设题目:Matlab车辆计数
- 【优化选址】基于matlab蚁群算法求解电动汽车充电站与换电站选址优化问题【含Matlab源码 1182期】
- 直线的两点式、一般式以及点到直线的垂点