今天的收获@TOC
根据对于8086cpu的探索发现
8086cpu的寻址方式是:段地址16+偏移地址,之所以这么设计,是因为当时intel在制作的时候,想要让8086的寻址空间达到1mb,所以地址总线使用了20条,2的20次幂=1mb;但是,数据总线宽度只有16,这并不匹配,为了解决这个问题,最终他们想出一个办法,设置段寄存器;一共设置了4个段寄存器以供各种方式使用,段寄存器是16位,设计上与地址总线的20位中高16为对齐,大概是这样:
地址总线:▯▯▯▯ ▯▯▯▯ ▯▯▯▯ ▯▯▯▯ ▯▯▯▯
段寄存器:▯▯▯▯ ▯▯▯▯ ▯▯▯▯ ▯▯▯▯
处理数据时,内部先进行了地址计算,地址数据的高16位与段寄存器相加,剩余4位就是偏移地址了,所以段地址16+偏移地址=物理地址。