存储器的组织
80486在实地址方式下能访问 1M 字节的存储空间,需要 20位地址,有如下特点:
- 每个存储单元有一个地址,用20位二进制数(5位16进制数)表示,从 00000H~FFFFFH。
- 每个存储单元存放一个字节(byte=8bit)的数据。
- 相邻的两个存储单元可构成一个字(word),在对准字时,用偶地址表示。
- 一个字对应一个低位的偶地址和一个高位的奇地址。比如 00002H 和 00003H 构成一个字;
- 低位偶地址的内容放在低8位,高位奇地址的内容放在高8位。比如 (00002H)=34H,(00003H)=12H,那么(00002)=1234H
再次提醒一下:1byte=1bit,1Mb=1024byte=2^10byte,1Tb=1024Mb=2^10Mb
存储器的分段结构
程序与数据,程序与程序之间有逻辑独立性,所以计算机将存储器分为相对独立的许多内存段,每个段存放不同的程序和数据。
每个段的容量最多为 64kB,因为我们的寄存器都是 16 位的(2^16=64KB);每个段都是独立寻址的逻辑空间,但不同段之间可以邻接、间隔、完全重叠或部分充电。所以一个物理存储单元可以属于一个或多个段。
8086每个程序只能访问四个段,分别是
- 代码段——CS寄存器
- 数据段——DS寄存器
- 堆栈段——SS寄存器
- 附加段——ES寄存器
逻辑地址/物理地址
逻辑地址=段基址«4+偏移地址
段基址 | 16位偏移 | 主要用途 |
---|---|---|
CS | IP | 指令寻址 |
SS | SP或BP | 堆栈寻址 |
DS | BX、DI、SI | 数据寻址 |
ES | 串指令的DI | 串目标寻址 |
堆栈
8086上的堆栈操作是对字(word=2byte)进行操作的。
下篇引脚