关于8086CPU给出物理地址的方法 汇编相关

8086CPU要访问地址为123C8H的内存单元,相关部件提供两个16位的地址,一个被称为段地址,一个被称为偏移地址,这个是怎么划分的?哪个是段地址,哪个是偏移地址?这两个地址跟123C8H有什么关系
123C8转化为16进制后是17位,那么这个寄存器高八位和低八位占满了会怎么样?再用一个寄存器吗?
新手,希望解答详细一点

物理地址
CPU访问内存单元时必须要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。我们将这个唯一的地址称为物理地址。
注:一个内存单元为一个字节(Byte),即8位(bit)二进制位。
16位结构的CPU
概括的讲,16位结构描述了一个CPU具有以下几个方面特征:
1、运算器一次最多可以处理16位的数据。
2、寄存器的最大宽度为16位。
3、寄存器和运算器之间的通路是16位的。

作为16位结构的8086CPU给出物理地址的方法:

8086有20位外部地址总线,可传送20位地址,寻址能力为1MB。
8086内部地址总线为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64KB。
注:
外部地址总线:CPU 与外部各器件(如内存、显存等)的通信线路集合。
内部地址总线:是CPU内部各器件(如寄存器、控制器、运算器等)的通信线路集合。
每一条通信线路可传达一个0或者1信号,因此,8086CPU外部总线能表示的最大二进制数据为1111 1111 1111 1111 1111。又由于内存单元的地址编号是从0开始的一元线性结构,因此外部地址总线能给出的最大的内存单元地址为2^20(2的20次方),因此,8086CPU寻址的最大范围是2^20Byte,即1MB.
同理,可知内部地址总线的寻址能力为64KB。
问题:那么,8086CPU如何用内部16位的数据转换成20位的地址呢?
答:8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址~
8086CPU如何用内部16位的数据转换成20位的地址

8086CPU读写内存时,发生了这么一些事:
CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;
段地址和偏移地址通过内部总线送入一个称为地址加法器的部件;
地址加法器将两个16位地址合并成一个20位的地址;追问

没写完。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-03
占满后将无法正常运作,必须得要再用一个寄存器
相似回答