8086 微处理器共有 4 个 16 位的段寄存器,在寻址内存单元时,用它们直接或间接地存放段地址。
代码段寄存器 CS :存放当前执行的程序的段地址。
数据段寄存器 DS :存放当前执行的程序所用操作数的段地址。
堆栈段寄存器 SS :存放当前执行的程序所用堆栈的段地址。
附加段寄存器 ES :存放当前执行程序中一个辅助数据段的段地址。
由 cs:ip 构成指令地址, ss:sp 构成堆栈的栈顶地址指针。 DS 和 ES 用作数据段和附加段的段地址(段起始地址或段值)
8086 / 8088 微处理器的存储器管理
1. 地址线(码)与寻址范围: N 条地址线 寻址范围 =2N
2.8086 有 20 地址线 寻址范围为 1MB 由 00000H ~ FFFFFH
3. 8086 微处理器是一个 16 位结构,用户可用的寄存器均为 16 位:寻址 64KB
4. 8086 / 8088 采用分段的方法对存储器进行管理。具体做法是:把 1MB 的存储器空间分成若干段,每段容量为 64KB ,每段存储器的起始地址必须是一个能被 16 整除的地址码,即在 20 位的二进制地址码中最低 4 位必须是 “0” 。每个段首地址的高 16 位二进制代码就是该段的段号 ( 称段基地址 ) 或简称段地址,段号保存在段寄存器中。我们可对段寄存器设置不同的值来使微处理器的存储器访问指向不同的段。
5. 段内的某个存储单元相对于该段段首地址的差值,称为段内偏移地址 ( 也叫偏移量 ) 用 16 位二进制代码表示。
6. 物理地址是由 8086 / 8088 芯片地址引线送出的 20 位地址码,它用来参加存储器的地址译码,最终读/写所访问的一个特定的存储单元。
7. 逻辑地址由某段的段地址和段内偏移地址 ( 也叫偏移量 ) 两部分所组成。写成:
段地址:偏移地址 ( 例如, 1234H : 0088H) 。
8. 在硬件上起作用的是物理地址,物理地址=段基地址 ×10H 十偏移地址