关于汇编指令中的地址-微机原理与接口技术课程学习

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。

 

学生一枚,恐不细致。

参考的课本:《微机原理与接口技术》 李少梅 张心歌 杨成慧

 

posted @ 2019-09-10 16:16  奋斗的小仔  阅读(1333)  评论(0)    收藏  举报