汇编基础(CPU)

来源:互联网 发布:网络金融销售 编辑:程序博客网 时间:2024/04/30 13:10
 1,存储器地址空间和数据存储格式

8086存储器有20条地址总线,所以地址空间容量为1MB,即2^20(十六进制的范围是:00000~FFFFFH)。

8086系统将存储器分成两个部分,每部分为512KB,分别称为偶存储体和奇存储体。偶存储体内存但愿的地址码都是偶数,对应CPU的低8位,奇存储器的内存单元地址码都是技术,如00001H,00003H等。19根地址线对应寻址,剩下的A0作为片选信号。为了实现对寄存储器的正确访问,8086专门设置了BHE作为奇存储器的片选信号。

8086有16根数据线,可以进行16位或者8位运算。8086允许字从任何地址开始,为偶地址时,称字的存储是“对准”的,若未奇地址时,为“未对准”,对于偶地址的字节指令,需要一个总线周期,而对于奇地址的字节指令,需要两个总线周期。所以,为了提高对数据字的访问速度,应该将数据字的低字节放在偶存储体中,即数据字的地址码为偶数。

2,存储器的分段

8086能寻址20根地址总线,但CPU内部只有16位的寄存器,即只能提供64K个地址。CPU为了能寻址完任何一个单元,采用了地址分段法,每段不超过64KB,最终将寻址范围扩大到了1MB。在1M的存储空间中,每个存储单元的实际地址称为该单元的物理地址(PA),可以用相对于本段的起始地址的偏移量来表示,这个偏移量成为段内偏移地址,也称为有效地址(EA)。

所以各逻辑段的起始地址必须能被16整除,因此1M的存储空间内,可以有2^16个段地址,每个相邻的段内有16个存储单元,每个段内有2^16=64K个偏移地址。在一个64KB的段内,每个偏移地址单元的段地址都是相同的,所以段地址也称为基地址。所以物理地址=段地址*10H+偏移地址(EA)。

原创粉丝点击