8088/8086的存储器结构(微机原理笔记)
Posted 你要永远相信光z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8088/8086的存储器结构(微机原理笔记)相关的知识,希望对你有一定的参考价值。
8088/8086的存储器结构
存储器是计算机存储信息的地方。程序运行所需要的数据、程序执行的结果以及程序本身均保存在存储器中。
数据的存储格式
二进制简介: 计算机存储信息的基本单位是二进制位(bit),一个位可存储一位二进制数:0或1。8个二进制位组成1字节(Byte),16个二进制位组成1字,32个二进制位组成双字,书写时位编号由右向左从0开始递增计数,例如D7~ D0,如下图所示。其中最低位称为最低有效位(Least Significant Bit,LSB),即Do位﹔最高位称为最高有效位(Most Significant Bit,MSB)
在存储器的存储格式: 在存储器里以字节为单位存储信息。为了区别每个字节单元,将它们编号,称为存储器地址。地址编号从0开始,顺序加1,是一个无符号二进制整数,常用十六进制数表示。字或双字在存储器中占相邻的2个或4个存储单元,存放时,低字节存入低地址,高字节存入高地址。字或双字单元的地址用它的低地址来表示。一个存储单元存放的信息称为该存储单元的内容。
存储器的分段管理
8088 CPU将1MB存储器空间(地址线为20位)分成许多逻辑段(Segment)来管理,每个段最大限制为64KB(寄存器,内部数据总线都为16位),而且只能从模16地址开始一个逻辑段。这样,每个存储器单元还可以用“段基地址:段内偏移地址”表达其准确的物理位置。
- 段基地址——说明逻辑段在主存中的起始位置,简称段地址。为了能用16位寄存器表达段地址,8088规定段地址必须是模16地址,即为xxxx0H形式。省略二进制的低4位0,段地址就可以用二进制的16位数据表示,通常被保存在16位的段寄存器中。
- 段内偏移地址——说明主存单元距离段起始位置的偏移量(Displacement),简称偏移地址(Offset)。由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示。
物理地址和逻辑地址的区别
对于每个存储器单元都有的一个唯一的20位地址,我们称之为物理地址或绝对地址。微处理器通过总线存取存储器数据时,就采用这个物理地址。而在8088内部和用户编程时,所采用的“段地址:偏移地址”形式,我们称为逻辑地址。
物理地址的求法
在8088的总线接口单元BIU含有一个20位地址加法器,它将逻辑地址中的段地址左移二进制4位(对应十六进制是一位,即乘以16),加上偏移地址就得到20位物理地址。例如逻辑地址“1460H : 100H”就表示物理地址14700H,其中段地址1460H表示该段起始于物理地址14600H,偏移地址为0100H。同一个物理地址可以有多个逻辑地址形式。物理地址14700H还可以用逻辑地址“1380H : FOOH”表示,该段起始于13800H。
段寄存器
段寄存器也是存储器,但是它是在CPU里面的。为了保存段地址,8088设计了4个16位段寄存器:CS、DS、ES和SS CS为代码段寄存器,DS为数据段寄存器,ES为附加段寄存器,SS为堆栈段寄存器。每个段寄存器用来确定一个段的起始地址,各段均有各自的用途。
代码段寄存器CS
代码段
用来存放程序的指令序列
代码段寄存器CS
CS存放代码段的段地址,指令指针寄存器IP指示代码段中指令的偏移地址。处理器利用CS:IP取得要执行的指令。
数据段寄存器DS
数据段
存放当前运行程序所用的数据
数据段寄存器DS
DS存放数据段的段地址,存储器中操作数的偏移地址则由各种主存寻址方式得到,称之为有效地址EA。
附加段寄存器ES
附加段
是附加的数据段,也用于数据的保存
附加段寄存器ES
ES存放附加段的段地址
段超越前缀指令
在编制程序时,可以很自然地把程序的各部分放在相应的逻辑段内:
- 程序的指令序列必须安排在代码段。
- 程序使用的堆栈一定放在堆栈段。
- 程序中的数据默认在数据段,也可以安排在附加段,尤其是串操作的目的操作数必须在附加段中。
但是,数据的存放是比较灵活的,实际上,可以存放在任何一种逻辑段中。这时,只要明确指明是哪个逻辑段就可以了。为此,8088设计有4个段超越前缀指令,分别如下表示:
CS: ;代码段超越,使用代码段的数据
SS: ;堆栈段超越,使用堆栈段的数据
DS: ;数据段超越,使用数据段的数据
ES: ;附加段超越,使用附加段的数据
段寄存器的使用规定总结在下表中
访问存储器的方式 | 默认的段寄存器 | 可超越的段寄存器 | 偏移地址 |
---|---|---|---|
取指令 | CS | 无 | IP |
堆栈操作 | SS | 无 | SP |
一般数据访问(下列除外) | DS | CS,ES,SS | 有效地址EA |
串操作的源操作数 | DS | CS,ES,SS | SI |
串操作的目的操作数 | ES | 无 | DI |
BP作为基址的寻址方式 | SS | CS,DS,ES | 有效地址EA |
以上是关于8088/8086的存储器结构(微机原理笔记)的主要内容,如果未能解决你的问题,请参考以下文章