问一个简单的概念问题

ouyadi 2004-08-27 11:29:22
为什么在直接寻址的时候比如说
MOV AX,[3100H]
他的物理地址为6000H*10H+3100H=60000H+3100H=63100H
为什么要乘以10H啊?也就是说为什么要向左移四位。谢谢
...全文
138 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
绝影 2004-08-27
  • 打赏
  • 举报
回复
等于20位的物理地址
绝影 2004-08-27
  • 打赏
  • 举报
回复
基址寄存器的16位值左移4位变成20位,加上偏移地址,等到20位的物理地址。
programfanny 2004-08-27
  • 打赏
  • 举报
回复
在INTEL 8086 中 ,采用20位地址但寄存器都是16位的,为了达到寻址20位的目
的早期的INTEL专门设计了将段寄存器左移四位与偏移地址相加的寻址方法,从而将原
来的64K的寻址范围扩大到1M(原来的16倍)。后来的80286,386,Pentiun为了保持CPU的
兼容性,在实模式中就保留下了这一套变态的设计方案。
实际上在8086以后的CPU实模式下完全可避开这种寻址方式,方法如下:
进一次保护模式,将某段寄存器的段限改掉,再回到实模式下,使用这一段寄存器
即可存取大于64K的内存,从而避开这种寻址方式。
clumsy 2004-08-27
  • 打赏
  • 举报
回复
>> 基址寄存器的16位值左移4位变成20位....
应该是称作 '段寄存器' 吧?

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧