寄存器(Register)

寄存器是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(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;

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

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

SI(Source Index):源变址寄存器可用来存放相对于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时代,其寻址方式,寄存器大小, 功能等都发生了变化, 要想学习这方面知识请参考相应资料

什么是寄存器(Register)?收藏相关推荐

  1. 汇编:寄存器/register,基础概念

    文章目录 cpu register hard register general register 整数寄存器 SSE 寄存器 register file 伪寄存器 如果想将所有的信息放到一篇里,会发现 ...

  2. NASM: Register 寄存器

    NASM: Register 寄存器 文章目录 NASM: Register 寄存器 简介 参考 正文 寄存器分类 数据寄存器:`AX`.`BX`.`CX`.`DX` 高位 H 和低位 L:`AH`. ...

  3. 汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  4. 深入iOS系统底层之CPU寄存器介绍

    一弹指六十刹那,一刹那九百生灭. --<仁王经> 组件 计算机是一种数据处理设备,它由CPU和内存以及外部设备组成.CPU负责数据处理,内存负责存储,外部设备负责数据的输入和输出,它们之间 ...

  5. 汇编c语言基础教程编程达人,编程达人 《汇编、C语言基础教程》第二章 汇编基础2.2 寄存器...

    2.2 寄存器 本节只需要了解 处理器(CPU)由运算器.控制器.寄存器.输入设备和输出设备组成,这些器件由处理数据总线相连.[此节内容是为了了解寄存器相关知识,不需要掌握] 它们在处理器中,分工明确 ...

  6. 【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) s5p4418 gmac概述 支持千兆速度,协议为RGMI ...

  7. jk触发器改为四进制_锁存器、触发器、寄存器和缓冲器的区别

    一.锁存器 锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态 锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才 ...

  8. 逆向工程---IA32寄存器

    IA32寄存器基本讲解 1.什么是CPU寄存器 寄存器(Register )是CPU内部用来存放数据的一些小型存储区域,它与我们常说的RAM( Random Access Memory,随机存储器.内 ...

  9. 芯片手册中的英语言学——寄存器缩写命名方式探究

    今日在暴啃芯片手册!其中最令人头疼的就是成百上千的寄存器英文缩写. 在实际学习过程中会发现,很多寄存器会加上三个四个甚至更多的英文缩写字母作为后缀,而其很多时候百度并不一定能查询到全拼!这使得我们在学 ...

最新文章

  1. Java 日志框架适配/冲突解决方案(值得收藏)
  2. 用虚拟机学linux,虚拟机上学习Linux运维?学linux有什么用
  3. js 函数调用顺序研究
  4. 10.5 QQ 支持
  5. keil 函数最多可以传几个参数_007 函数进阶,来做一次比较正式的作业
  6. Mysql 8 驱动问题:报错Unknown system variable 'query_cache_size'
  7. 02=windows下安装PostgreSQL(The database cluster initialisation failed)
  8. 说明书 Cisco wrv210
  9. 四、java多线程核心技术——synchronized同步方法与synchronized同步快
  10. iOS $99 刀 开发者证书的申请步骤
  11. Word文档批量替换工具
  12. jdk8安装和环境变量配置
  13. 【联想启天M4350】Windows 7下安装Yosemite 10.10.1懒人版
  14. spss25 等待服务器响应出现问题,spss打开配置服务器失败
  15. 中介效应分析与路径分析
  16. 深度教练:让深度学习模拟人类教学过程,大幅减少训练数据和时间
  17. 【Spring】Spring 知识点整理及补充
  18. java 小程序 自己学习
  19. 10个团建小游戏备选方案
  20. OneNET平台创建产品

热门文章

  1. 计算机应用的基础包括内容是什么,计算机应用基础试题2
  2. Android经典项目案例开发实战宝典
  3. strcat、strcpy、strcmp三种函数用法
  4. 推荐一个老外的spring HATEOAS的demo
  5. solrcloud入门详细使用教程
  6. 乱花渐欲迷人眼的C编译器中,谁才是“编译之王”?
  7. 自动上传本地图片和word图片(word图片需使用从word粘贴功能)
  8. 计算机网络实验——交换机的基本配置与管理
  9. 计算机底层架构(偏硬件)综述
  10. 微信PC端技术研究(2)-保存聊天语音