CPU工作原理:
对于8086 CPU,地址总线有20个,在存储器中寻址的时候一次可以传送20位地址信息,寻址能力为1 M。但是内部数据总线以及寄存器都是16位的,因此寻址的过程中需要进行转换。
如何进行的转换呢?
8086 CPU 采用一种在内部用两个16位地址(称为段地址和偏移地址)合成的方法来形成一个20位的物理地址。
地址加法器合成物理地址的方法:
物理地址=段地址*16+偏移地址
在16进制下也就是,段地址左移一位+偏移地址
但是实际上,内存并没有分段,仍然是线性的,只是人类方便理解,将内存中某一称之为段,在8086下,一份段地址里面有64 k 个存储单元,同样的物理地址可以有不同的段地址和偏移地址相加获得。
一般情况下,段地址保存在段寄存器中,8086有四个段寄存器CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈寄存器)、ES(扩展寄存器,不够的话用这个),段寄存器在使用的时候不能直接使用立即数寻址。