8086寻址方式

8086寻址方式

16位的8086cpu中运算器一次最多可以处理16位的数据,寄存器的最大宽度为16位,寄存器和运算器之间的通路为16位。也就是说在8086内部,能够一次性处理,传输,暂存的数据信息最大长度是16位。

由于8086有20位的地址总线,可以传送20位地址,寻址能力能达到1M。而8086又是16位的结构,内部能够一次性处理,传输,暂存的数据信息最大长度是16位,寻址能力仅能达到64K。所以在8086采用在内部将两个16位的地址合成一个20位的物理地址的方式进行寻址。

当8086要读写内存时:

  1. cpu相关部件提供两个16位的地址,一个叫段地址,一个叫偏移地址
  2. 内部总线将两个地址送入一个叫地址加法器的部件中
  3. 地址加法器通过段地址*16+偏移地址的算法将两个16位地址合成为一个20位的物理地址
  4. 地址加法器通过内部总线将20位物理地址送入io控制电路
  5. io控制电路将20位物理地址送上地址总线
  6. 20位的物理地址被地址总线送到寄存器

比如8086要访问123C8的内存单元,则加法计算(16位)的工作为:1230*16+00C8 = 12300+00C8 = 123C8。当然通过该算法生成123C8的段寄存器和偏移寄存器不是唯一的。

8086汇编的相关笔记来自 小码哥 MJ iOS底层视频 以及 王爽《汇编语言(第三版)》

你可能感兴趣的:(8086寻址方式)