回 帖 发 新 帖 刷新版面

主题:8086寻址超过1M怎么处理?

??

回复列表 (共7个回复)

沙发

我记得是用一个page映射,访问某一块1MB内的内存就映射到1MB外的某一大块内存。这叫……EMS还是XMS来着?忘记了。。。

板凳

如果是"纯" 8086 是只可以寻址 1 MB 内存, 因为硬件不支持(只有 20 根地址总线).

我认为那些内存扩展技术也只能在硬件的基础上实现。如 80286 就有 24 根地址总线, 那么我们可以寻址的空间为 16 MB

3 楼

你们误解了,我是想问有什么错误处理。真正的8086哪能处理什么大内存

4 楼

8086 不可以寻址超过 1 MB 的地址!!!!!

何来怎么处理?

5 楼

mov ffff:[ffff], ??$$

物理地址为 FFFF0 + FFFF = 0FFEF 对应的为 0000:FFEF (因为地址加法器只可保留 5 位)
物理地址为 FFFF0 + FFFF + 1 = 0FFF0 对应为 0000:FFF0

所以上面的执行结果为:
0000:FFEF = $$
0000:FFF0 = ??
你可以在 debug 下看看,提醒一下 windows xp 下的使用 debug 跟踪执行这样的指
令会直接退出,你可以使用 dosbox 虚拟一个 dos 环境,然后执行操作系统自带的 debug.
希望我讲明白了,^_^

6 楼

这个地址是在汇编时判断还是cpu判断?

7 楼

当然是由 cpu 处理的

我来回复

您尚未登录,请登录后再回复。点此登录或注册