求助!汇编语言 段地址 偏移地址 物理地址问题!
3个回答
展开全部
我们经常会有拿一个地址找房间的经验吧,比如说302,那么,我们知道这房间在三楼,是从东边算过来的第二间,这个地址其实就是两个地址组成
:3楼,2号房,注意到没,每个地址是一位数,但是通过大家熟知的规律合成了一个三位数的地址。
把这个例子带到这个问题中,你可以这样理解,段地址相当于楼层地址,偏移地址相当于房间号,最后合成的就是物理地址。
8086的地址线20根,数据线16根,物理地址的位数取决于8086地址线的数量,16位的数据线决定了8086的寄存器只能有16位,这样一来不管是段寄存器还是通用寄存器都是16位的,所以,段地址和偏移量也都是16位了。当要合成20位的物理地址时,先把段地址左移4位(就是*16的原因),变成20位的,然后再加16位的偏移地址,得到最后的20位物理地址。
:3楼,2号房,注意到没,每个地址是一位数,但是通过大家熟知的规律合成了一个三位数的地址。
把这个例子带到这个问题中,你可以这样理解,段地址相当于楼层地址,偏移地址相当于房间号,最后合成的就是物理地址。
8086的地址线20根,数据线16根,物理地址的位数取决于8086地址线的数量,16位的数据线决定了8086的寄存器只能有16位,这样一来不管是段寄存器还是通用寄存器都是16位的,所以,段地址和偏移量也都是16位了。当要合成20位的物理地址时,先把段地址左移4位(就是*16的原因),变成20位的,然后再加16位的偏移地址,得到最后的20位物理地址。
展开全部
这样内存一个20位的物理地址就由段地址(16位)和段内偏移地址(16位)组成,合成物理地址的方法是:将段地址的16位值左移4位(相当于乘十进制数16),
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为的机器的字是16位的,不能弄成其它的,只能转化的嘛。
所以只能使用把段地址左移4位,加上偏移地址。就可以啦,就像楼上说的。例子很好。
所以只能使用把段地址左移4位,加上偏移地址。就可以啦,就像楼上说的。例子很好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询