作业帮 > 数学 > 作业

汇编语言 段地址 偏移地址

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/16 11:53:47
汇编语言 段地址 偏移地址
是20位的
段地址 是16位的
偏移地址为什么还是16位?
既然段地址*16+偏移地址=物理地址
那么 段地址*16 不就是已经恢复成64KB的 20位
应该加上20位的物理偏移地址才对啊,为什么偏移地址却是16位的?
偏移地址到底是怎么算出来的?小弟感激不尽!
我们经常会有拿一个地址找房间的经验吧,比如说302,那么,我们知道这房间在三楼,是从东边算过来的第二间,这个地址其实就是两个地址组成 :3楼,2号房,注意到没,每个地址是一位数,但是通过大家熟知的规律合成了一个三位数的地址.
把这个例子带到这个问题中,你可以这样理解,段地址相当于楼层地址,偏移地址相当于房间号,最后合成的就是物理地址.
8086的地址线20根,数据线16根,物理地址的位数取决于8086地址线的数量,16位的数据线决定了8086的寄存器只能有16位,这样一来不管是段寄存器还是通用寄存器都是16位的,所以,段地址和偏移量也都是16位了.当要合成20位的物理地址时,先把段地址左移4位(就是*16的原因),变成20位的,然后再加16位的偏移地址,得到最后的20位物理地址.