问下16位机寻址问题,谢谢

xiexiejohn 2014-04-20 10:49:20
看王爽汇编中讲16位cpu寻址最大范围为2^20=1M 那为什么在xp下的debug也是16位汇编器,可是其寻址可以寻到FFFF:FFFF呢 (按书上讲段FFFF左移1位为FFFF0+偏移FFFF=10FFEF这不是超过1M表示范围了吗), 而1M转成16进制是FFFFF(FFFFF寻址不是只能到FFFF:000F吗)
就是说1M寻址范围只能是(0-FFFFF)再大就不能寻到,但在debug中却可以寻到FFFF:FFFF这是怎么回事
...全文
145 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大狮兄 2014-04-22
  • 打赏
  • 举报
回复
0~65535,大于65535,就变回了0,就是这么个意思
fly 100% 2014-04-21
  • 打赏
  • 举报
回复
地址会回绕的
zara 2014-04-21
  • 打赏
  • 举报
回复
能看到有两个情况,一个是地址回绕,FFFF:FFFF=FFFF0+FFFF=10FFEF,留下 20 位即为 0FFEF=0000:FFEF 这里;另外就是dos 加载 himem.sys 后,开启 A20 时,FFFF 后的 64K 段就可用访问了,这个区间是叫 HMA 还是 UMA 来着,以前 dos 时代对这个都熟悉的,dos 些驱动和些程序都可以加载到这个区间,从而可以将传统的常规内存部分腾出来供普通程序使用。
迷路卡不迷路 2014-04-21
  • 打赏
  • 举报
回复
我的理解是,能寻到FFFF:FFFF说的是内存地址 而20位寻址能力说的是段16位+偏移地址16。段左移4位+偏移地址的16位就是20位
xiexiejohn 2014-04-21
  • 打赏
  • 举报
回复
虽然还是有点不懂不过谢谢哈

21,458

社区成员

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

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