8086寄存器简述
来源:互联网 发布:商品降价提醒软件 编辑:程序博客网 时间:2024/06/06 01:07
8086 CPU 中寄存器总共为 14 个,且均为 16 位 。
即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。
而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。
通用寄存器:
AX,BX,CX,DX 称作为数据寄存器:
AX (Accumulator):累加寄存器,也称之为累加器;
BX (Base):基地址寄存器;
CX (Count):计数器寄存器;
DX (Data):数据寄存器;
SP 和 BP 又称作为指针寄存器:
SP (Stack Pointer):堆栈指针寄存器;
BP (Base Pointer):基指针寄存器;
SI 和 DI 又称作为变址寄存器:
SI (Source Index):源变址寄存器;
DI (Destination Index):目的变址寄存器;
控制寄存器:
IP (Instruction Pointer):指令指针寄存器;
FLAG:标志寄存器;
段寄存器:
CS (Code Segment):代码段寄存器;
DS (Data Segment):数据段寄存器;
SS (Stack Segment):堆栈段寄存器;
ES (Extra Segment):附加段寄存器;
通用寄存器
从上面可以知道,在 8086 CPU 中,通用寄存器有 8 个,分别是 AX,BX,CX,DX,SP,BP,SI,DI ,
至于为什么给它们取名做通用寄存器,那是因为,这些个寄存器每一个都有自己专门的用途,
比如 CX 作为计数寄存器,则是在使用 LOOP 指令循环时用来指定循环次数的寄存器,
如果它们每一个都只有一个专用的作用,那就它们只能称之为专用寄存器了,
正是因为这些个寄存器还可以用来传送数据和暂存数据,所以才称它们为通用寄存器 。
下面就按顺序来一一介绍这几个通用寄存器了:
数据寄存器(AX,BX,CX,DX):
数据寄存器有 AX,BX,CX,DX 四个组成,
由于在 8086 之前的 CPU 为 8 位 CPU,所以为了兼容以前的 8 位程序,
在 8086 CPU 中,每一个数据寄存器都可以当做两个单独的寄存器来使用,
由此,每一个 16 位寄存器就可以当做 2 个独立的 8 位寄存器来使用了 。
AX 寄存器可以分为两个独立的 8 位的 AH 和 AL 寄存器;
BX 寄存器可以分为两个独立的 8 位的 BH 和 BL 寄存器;
CX 寄存器可以分为两个独立的 8 位的 CH 和 CL 寄存器;
DX 寄存器可以分为两个独立的 8 位的 DH 和 DL 寄存器;
除了上面 4 个数据寄存器以外,其他寄存器均不可以分为两个独立的 8 位寄存器 ;
注意在上面标志中的“独立”二字,这两个字表明 AH 和 AL 作为 8 位寄存器使用时,
可以看做它们是互不相关的,也就是看做两个完全没有联系的寄存器 X 和 Y 即可,
比如指令 MOV AH , 12H ,CPU 在执行时根本就不会知道 AL 中是什么鬼东西,因为它只认识 AH 。
下面给出一幅 16 位数据寄存器的结构图:
表示 16 位 寄存器 AX 可以表示成两个 8 位寄存器,
其中 AH 表示高位的 8 位寄存器,AL 表示低位的 8 位寄存器 。
- 8086寄存器简述
- X86寄存器简述
- MIPS 寄存器简述
- 8086寄存器
- 8086寄存器
- 8086寄存器
- 8086 寄存器
- 8086寄存器
- 8086寄存器
- 8086寄存器
- 8086寄存器
- 8086寄存器
- 8086寄存器
- 8086寄存器组
- 2.3 8086寄存器组
- 转:8086寄存器组
- 8086中的寄存器
- 8086寄存器分类
- 搜索算法-求解最大子数组
- 线性表
- 设计模式(三)创建型模式
- 顺丰科技2017笔试 小C负责设计一种新的益智数字游戏
- 【DP 训练】Free Candies, UVa 10118
- 8086寄存器简述
- 使用Scala Parser解析JSON
- 子图同构问题Ullmann 算法(二)
- C++ map 容器
- console使用
- 创建和启动线程的两种方式
- Qt发布程序
- 销毁session
- C/C++(4)C调用C++方法