关于汇编指令中的地址-微机原理与接口技术课程学习
8086微处理器:具有16根外部数据总线、20根地址总线。
地址总线有20根,可寻址范围大小:00000H~FFFFFH,即1M
数据总线16根,所以CPU内部所有的寄存器都是16位的,寄存器可寻址范围大小:0000H~FFFFH ,即64K
8086系统中将可寻址的1MB空间分成许多个逻辑段,每个逻辑段容量不超过64K。因此,可以使用16位地址码直接寻址。
每个存储单元可以看成具有两种地址:物理地址和逻辑地址。
物理地址:在存储空间中唯一标识每个单元的地址,20位。
逻辑地址:由段基址加段内偏移量组成,16位。
物理地址与逻辑地址的联系=段基址×16+段内偏移地址。
段基址:段首地址的高16位地址码称为段基址。
如果地址20000H作为段的第一个地址的话,我们存储下来的16位段基址是2000H。
段基址保存在段寄存器中,也就是DS、SS、CS、ES。
假设基地址为2000H,偏移地址为1200H
2000H=0×16^0+0×16^1+0×16^2+2×16^3=2×16^3
2000H×16=16×(0×16^0+0×16^1+0×16^2+2×16^3)=2×16^4=20000H
就是相当于在最后加个0(左移一位)
物理地址:20000H+1200H=21200H
举例:
已知DS=2000H
MOV BX,[1200H]
在程序中常使用的是逻辑地址,我们知道逻辑地址包括两个部分,段基址部分和段内偏移地址部分。
段基址部分由段寄存器给出,光有基址是不能够确定具体处于哪一个单元的,所以在指令中给出的地址就是段内偏移地址部分,这样就可唯一确定地址。
已知逻辑地址,我们就能够通过计算得到物理地址是21200H。
学生一枚,恐不细致。
参考的课本:《微机原理与接口技术》 李少梅 张心歌 杨成慧

浙公网安备 33010602011771号