8086 CPU内部寄存器

1.数据寄存器

数据寄存器用来暂时存放计算过程中所用到的操作数、结果或其他信息,包括累加器AX、基址寄存器BX、计数寄存器CX和数据寄存器DX。16位数据寄存器,它们又可分为8个8位寄存器,即:
AX→AH,AL
BX→BH,BL
CX→CH,CL
DX→DH,DL
(1)AX:累加器。多用于存放中间运算结果。所有I/O指令必须都通过AX与接口传送信息;
(2)BX:基址寄存器。常用于存放访问内存时的偏移地址;
(3)CX:计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数;
(4)DX:数据寄存器。在32位乘除法运算时,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。

2.段寄存器

在8086系统中,存储器是分段管理的,访问存储器的地址码由段地址和段内偏移地址两部分组成。段寄存器用来存放段地址,包括4个16位寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。
(1)代码段寄存器CS:管理程序段。存放当前正在运行的程序所在段的段地址,段内的偏移地址则由IP提供。
(2)数据段寄存器DS:管理数据段。存放当前程序使用的数据所在段的段地址。
(3)堆栈段寄存器SS:管理堆栈段。存放当前堆栈段的段地址。
(4)附加段寄存器ES:管理扩展段。存放当前程序使用附加段的段地址,附加段是一个附加的数据段,在执行串操作指令时,作为目的串地址使用。

3.地址指针与变址寄存器

地址指针与变址寄存器包括4个16位寄存器:堆栈指针寄存器SP、基址指针寄存器BP、源变址寄存器SI和目的变址寄存器DI。它们一般用来存放主存地址的段内偏移地址,用于形成20位物理地址。另外,它们也可以和数据寄存器一样在运算过程中存放操作数,但只能以字(16位)为单位使用。
(1)堆栈指针寄存器SP:其内容为栈顶的偏移地址。
(2)基址指针寄存器BP:常用于在访问内存时存放内存单元的偏移地址。
注:BX与BP在应用上的区别:
作为通用寄存器,二者均可用于存放数据;
作为基址寄存器,BX通常用于数据段,一般与DS或ES搭配使用;BP则通常用于堆栈段,与SS搭配使用。
(3)变址寄存器SI和DI:在某些间接寻址方式中,用来存放段内偏移量的全部或一部分。在字符串操作指令中,SI用作源变址寄存器,DI用作目的变址寄存器。

4.控制寄存器

控制寄存器包括指令指针寄存器IP和标志寄存器FLAGS。
(1)指针寄存器IP:用来存放下一条将要执行的指令在代码段中的偏移地址,程序员不可以直接使用,但程序控制类指令会用到。它具有自动加1功能,每当执行一次取指令操作,它将自动加1,总是指向下一条要取的指令在现行代码段中的偏移地址。它和CS相结合,形成指向指令存放单元的物理地址。注意每取一个字节后IP内容加1,但取一个字后IP内容加2。
(2)标志寄存器FLAGS:16位标志寄存器,用来存放运算结果的特征。其中7位没有定义,其余9位分成两类:
①状态标志:表示运算后结果的状态特征它影响后面的操作,
有6位:CF、PF、AF、ZF、SF和OF。
②控制标志,用来控制CPU操作,有3个:TF、IF和DF。

D15D_{15}D15​ D14D_{14}D14​ D13D_{13}D13​ D12D_{12}D12​ D11D_{11}D11​ D10D_{10}D10​ D9D_9D9​ D8D_8D8​ D7D_7D7​ D6D_6D6​ D5D_5D5​ D4D_4D4​ D3D_3D3​ D2D_2D2​ D1D_1D1​ D0D_0D0​
OF DF IF TF SF ZF AF PF CF

CF - 进位标志:算术运算时有进位CF=1,无进位CF=0
PF - 奇偶标志:运算结果中“1” 的个数为偶数PF=1
AF - 辅助进位标志:第3位向第4位有进位时AF=1
ZF - 零标志:运算结果为“0”则ZF=1
SF - 符号标志:运算结果为负数时SF=1
OF - 溢出标志:运算结果超出规定范围OF=1
IF - 中断允许标志:IF=1中断允许
DF - 方向标志, DF=0地址加1
TF - 跟踪标志,TF=1,为单步工作方式

8086 CPU的寄存器结构相关推荐

  1. Z80 CPU的寄存器结构图示

  2. 计算机组成原理——8086 CPU寄存器

    本篇文章转载自 https://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html 结合文章做了一些小修改,使文章更完整. 1 总线 只是想 ...

  3. 8086 CPU 寄存器简介

    8086  CPU 中寄存器总共为 14 个,且均为 16 位 . 即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个. 而这 14 个寄存器按照 ...

  4. 8086 CPU 内部结构

    [原文链接 -- SevenOne'Blog](http://www.my71.fun/2022/03/24/汇编语言/07-8086 CPU 结构/) 8086 CPU 内部结构 分类 结构可以分为 ...

  5. X64汇编语言寄存器结构及其与X86架构编程区别

    目录 1.  关于X64架构 2.  X64架构的寄存器结构 2.1  通用目的寄存器 2.2 浮点数寄存器 2.3 指令指针寄存器 2.4 段寄存器 2.5 标识寄存器 2.6 控制寄存器 2.6. ...

  6. x86 - CPU架构/寄存器详解 (三) 保护模式

    系列文章 x86 - CPU架构/寄存器详解 (一)x86.8086.i386.IA-32 是什么? x86 - CPU架构/寄存器详解 (二) 实模式(8086模式) x86 - CPU架构/寄存器 ...

  7. X86系列CPU标准寄存器

    title: X86系列CPU标准寄存器 tags: 计算机组成原理   版权声明:本文章参考了唐朔飞的< 计算机组成原理>未经作者允许,严禁用于商业出版,否则追究法律责任.网络转载请注明 ...

  8. 简述8086计算机工作原理,8086/8088CPU的基本结构与其工作原理

    之前,我们给出了计算机系统模型,它并不特别针对某一种具体的计算机系统,只是为读者快速搭建一个深入计算机系统底层的框架.并且,在上一章中,着重介绍的是整个计算机系统的基本组成以及它的工作原理.由于CPU ...

  9. CPU的基本结构和功能

    CPU的基本结构和功能: (1)结构组成:运算器.控制器.寄存器组.内部总线 (2)功能:处理数据.控制时间.处理指令.执行操作 (寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规 ...

  10. cpu的基本结构及其工作原理

    中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit).它的功能主要是解释计算机指令以 ...

最新文章

  1. 沈向洋博士:三十年科研路,我踩过的那些坑
  2. 【专家观点】刘经南院士:北斗+5G为何能引领新基建?
  3. es6箭头函数_ES6语法之-箭头函数
  4. spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava
  5. MFC 蜂鸣声或播放音频
  6. python是如何实现进程池和线程池的_进程、线程、线程池和协程如何理解?
  7. 你以为熬个3年工作经验就是Java高级开发了?
  8. 文本相似性度量---------字符串近似相等
  9. 关于SAP2000插件开发的一些总结
  10. IE-LAB网络实验室:HCNP培训机构 HCIE培训中心 HCIE认证培训 HCNA培训 华为面试考试时需要注意什么
  11. BFS(广度优先算法)
  12. java课题研究方法和技术途径_开题报告中的拟采取的研究方法技术路线和技术关键...
  13. html/css(1)
  14. 感谢爱测未来,零基础的我的实习期是这么过来的
  15. nm命令 查看符号文件
  16. Vue3通透教程【十二】TS类型声明优势
  17. 用C语言编写5个学生,每个学生有3门课程成绩,从键盘输入学生数据(学号,姓名,3门成绩)计算平均成绩,将成绩放入磁盘文件stud中
  18. 关于C语言二级机考软件环境的一些问题
  19. SWAN之ikev2协议inactivity-timeout配置测试
  20. 网络路由与交换技术常见命令1(Cisco)

热门文章

  1. Android音频之多设备同时输出-cast通路分析
  2. 高效液相色谱分析的基本原理
  3. 关于Python 向pdf添加印章效果的思考及实现
  4. 计算机怎么禁用软件网络访问,Windows10系统下禁止软件联网的两种方法
  5. HttpClient4.X 升级 入门 + http连接池使用
  6. matlab gui用edit,matlab gui edit 显示
  7. lamp兄弟连 mysql_LAMP兄弟连原创视频教程(笔记五--文件上传下载,mysqli对象,session,cookie,date函数)...
  8. 【原创】无线LED条屏信息报警项目---2012.05
  9. 21-04-08 cms日志分析
  10. 基于SSH的客户关系管理系统