8086 CPU的寄存器结构
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的寄存器结构相关推荐
- Z80 CPU的寄存器结构图示
- 计算机组成原理——8086 CPU寄存器
本篇文章转载自 https://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html 结合文章做了一些小修改,使文章更完整. 1 总线 只是想 ...
- 8086 CPU 寄存器简介
8086 CPU 中寄存器总共为 14 个,且均为 16 位 . 即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个. 而这 14 个寄存器按照 ...
- 8086 CPU 内部结构
[原文链接 -- SevenOne'Blog](http://www.my71.fun/2022/03/24/汇编语言/07-8086 CPU 结构/) 8086 CPU 内部结构 分类 结构可以分为 ...
- X64汇编语言寄存器结构及其与X86架构编程区别
目录 1. 关于X64架构 2. X64架构的寄存器结构 2.1 通用目的寄存器 2.2 浮点数寄存器 2.3 指令指针寄存器 2.4 段寄存器 2.5 标识寄存器 2.6 控制寄存器 2.6. ...
- x86 - CPU架构/寄存器详解 (三) 保护模式
系列文章 x86 - CPU架构/寄存器详解 (一)x86.8086.i386.IA-32 是什么? x86 - CPU架构/寄存器详解 (二) 实模式(8086模式) x86 - CPU架构/寄存器 ...
- X86系列CPU标准寄存器
title: X86系列CPU标准寄存器 tags: 计算机组成原理 版权声明:本文章参考了唐朔飞的< 计算机组成原理>未经作者允许,严禁用于商业出版,否则追究法律责任.网络转载请注明 ...
- 简述8086计算机工作原理,8086/8088CPU的基本结构与其工作原理
之前,我们给出了计算机系统模型,它并不特别针对某一种具体的计算机系统,只是为读者快速搭建一个深入计算机系统底层的框架.并且,在上一章中,着重介绍的是整个计算机系统的基本组成以及它的工作原理.由于CPU ...
- CPU的基本结构和功能
CPU的基本结构和功能: (1)结构组成:运算器.控制器.寄存器组.内部总线 (2)功能:处理数据.控制时间.处理指令.执行操作 (寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规 ...
- cpu的基本结构及其工作原理
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit).它的功能主要是解释计算机指令以 ...
最新文章
- 沈向洋博士:三十年科研路,我踩过的那些坑
- 【专家观点】刘经南院士:北斗+5G为何能引领新基建?
- es6箭头函数_ES6语法之-箭头函数
- spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava
- MFC 蜂鸣声或播放音频
- python是如何实现进程池和线程池的_进程、线程、线程池和协程如何理解?
- 你以为熬个3年工作经验就是Java高级开发了?
- 文本相似性度量---------字符串近似相等
- 关于SAP2000插件开发的一些总结
- IE-LAB网络实验室:HCNP培训机构 HCIE培训中心 HCIE认证培训 HCNA培训 华为面试考试时需要注意什么
- BFS(广度优先算法)
- java课题研究方法和技术途径_开题报告中的拟采取的研究方法技术路线和技术关键...
- html/css(1)
- 感谢爱测未来,零基础的我的实习期是这么过来的
- nm命令 查看符号文件
- Vue3通透教程【十二】TS类型声明优势
- 用C语言编写5个学生,每个学生有3门课程成绩,从键盘输入学生数据(学号,姓名,3门成绩)计算平均成绩,将成绩放入磁盘文件stud中
- 关于C语言二级机考软件环境的一些问题
- SWAN之ikev2协议inactivity-timeout配置测试
- 网络路由与交换技术常见命令1(Cisco)
热门文章
- Android音频之多设备同时输出-cast通路分析
- 高效液相色谱分析的基本原理
- 关于Python 向pdf添加印章效果的思考及实现
- 计算机怎么禁用软件网络访问,Windows10系统下禁止软件联网的两种方法
- HttpClient4.X 升级 入门 + http连接池使用
- matlab gui用edit,matlab gui edit 显示
- lamp兄弟连 mysql_LAMP兄弟连原创视频教程(笔记五--文件上传下载,mysqli对象,session,cookie,date函数)...
- 【原创】无线LED条屏信息报警项目---2012.05
- 21-04-08 cms日志分析
- 基于SSH的客户关系管理系统