永发信息网

关于8086CPU计算物理地址问题

答案:4  悬赏:40  手机版
解决时间 2021-11-26 23:12
  • 提问者网友:留有余香
  • 2021-11-26 06:49
关于8086CPU计算物理地址问题
最佳答案
  • 五星知识达人网友:躲不过心动
  • 2021-11-26 08:15
因为x86处理器地址总线是20位,最大管理1M内存,对应物理地址是00000H-fffffH

而内部数据总线、寄存器都是16位的,能表示的范围为0000H-ffffH

如何用16位寄存器表示20位?想到这样一种方式:
把两个16位寄存器相加得到20位,于是便有了

物理地址=段地址*16+偏移地址
相当于在16位地址后面加4个0,形成20位地址

具体过程如下:
段地址和偏移地址通过内部总线传入到地址加法器的部件;
地址加法器将两个16位地址合并为一个20位的物理地址;
0010 1001 1000 1000 0000 后面加4个0
0000 1000 0000 0000 0000 前面加4个0
-------------------------
0011 0001 1000 1000 0000
3 1 8 8 0
全部回答
  • 1楼网友:行雁书
  • 2021-11-26 11:07
物理地址=段地址左移4位(即乘以10H)+偏移地址=2988H*10H+8000H=29880H+8000H=31880H
  • 2楼网友:怙棘
  • 2021-11-26 09:54
物理地址=段地址左移4位(即乘以16)+偏移地址
(2988H<<4)+8000H=9880H+8000H=31880H

ps:乘以16的时候,要把16进制转换为10进制。

直观点还是【匿名 4-9 16:28】
  • 3楼网友:洒脱疯子
  • 2021-11-26 08:31
物理地址=段地址左移4位(即乘以16)+偏移地址

所以,(2988H<<4)+8000H=9880H+8000H=11880H

我的答案有错,用楼上几位的吧,
是29880H+8000H=31880H
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯