微机原理(四)—8086寄存器,存储器结构
1.8086寄存器结构
8086CPU内部有14个16位寄存器,按功能分可分为三大类: 通用寄存器(8个),段寄存器(4个),和控制寄存器(2个)
1>数据寄存器AX,BX,CX,DX
每个数据寄存器都是十六位的,但又可将高,低8位分别作为两个独立的8位寄存器来用.
AX:累加器,存放运算结果 ,可使指令简化,提高指令的执行速度
BX:基址寄存器,操作数在数据段内的偏移地址
CX:计数器,在设计循环程序时存放循环次数
DX:数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口地址; 在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数
2>地址指针寄存器SP,BP
SP:称为堆栈指针寄存器,在使用堆栈操作指令(PUSH或POP)时,系统会将SP的内容减2或 加2,以使其始终指向栈顶
PB:基址寄存器,重要的用途是存放操作数在堆栈段的偏移地址
3>变址寄存器SI,DI
SI为源变址寄存器 ,DI为目的变址寄存器,通常用在 字符串操作时存放操作数的偏移地址. SI存放在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址
4>段寄存器
CS:代码段寄存器,用来存放程序当前使用的代码的段地址,其内容左移4位再加上指令指针寄存器IP中的内容 就是 下一条要读取的指令在存储器中的物理地址
DS:数据段寄存器,存放当前程序数据段的段地址,左移4位再加上按指令中存储器寻址方式给出的偏移地址即可得到数据段指定单元读写的物理地址
SS:堆栈段寄存器,存放当前程序所用的堆栈段的段地址,用于调用子程序或执行中断服务 程序时保护断点和现场
ES:附加段数据寄存器,存放字符串操作时的目的字符串
5>控制寄存器
IP:指令指针寄存器,存放下一条要读取的指令在代码段内的偏移地址
FLAGS:标志寄存器,一个 16位的 寄存器,但只用了其中的 9位,分为6个状态 标志位和3个控制标志位
状态标志位
- CF:进位标志位 ,若最高位发生进位或借位,则CF为1,否则为0
- PF:奇偶标志位,当低八位中有偶数个1时,PF为1,否则为0
- AF:辅助进位标志位 ,若结果的低字节的低四位向高四位进位或借位,则AF为1,否则为0
- ZF:零标志位,若运算结果为0,则 ZF为1,否则为0
- SF:符号标志位,运算结果最高位 为1时,SF=1,否则为0
- OF:溢出标志位,当运算 结果溢出时,OF=1,否则为0
控制标志位
- TF:跟踪(陷阱)标志位,用于测试,若TF=1,则 CPU处于单步工作状态
- IF:中断允许 标志位,用于控制 可屏蔽中断的控制标志位,若为 1,则可以接受外部从INTR引脚 上发来 的可屏蔽中断请求;若为0,则禁止CPU接收可屏蔽中断请求信号
2.8086存储器结构
8086的1MB存储空间实际上分为两个5142KB的存储体,又称存储库,分别叫高位库和低位库
还没有评论,来说两句吧...