主题:8086寻址超过1M怎么处理?
euc
[专家分:4310] 发布于 2006-01-08 18:04:00
??
回复列表 (共7个回复)
沙发
FancyMouse [专家分:13680] 发布于 2006-01-08 19:44:00
我记得是用一个page映射,访问某一块1MB内的内存就映射到1MB外的某一大块内存。这叫……EMS还是XMS来着?忘记了。。。
板凳
erping [专家分:3660] 发布于 2006-01-09 14:07:00
如果是"纯" 8086 是只可以寻址 1 MB 内存, 因为硬件不支持(只有 20 根地址总线).
我认为那些内存扩展技术也只能在硬件的基础上实现。如 80286 就有 24 根地址总线, 那么我们可以寻址的空间为 16 MB
3 楼
euc [专家分:4310] 发布于 2006-01-09 18:51:00
你们误解了,我是想问有什么错误处理。真正的8086哪能处理什么大内存
4 楼
erping [专家分:3660] 发布于 2006-01-09 18:56:00
8086 不可以寻址超过 1 MB 的地址!!!!!
何来怎么处理?
5 楼
erping [专家分:3660] 发布于 2006-01-13 13:13:00
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 楼
euc [专家分:4310] 发布于 2006-01-13 19:03:00
这个地址是在汇编时判断还是cpu判断?
7 楼
erping [专家分:3660] 发布于 2006-01-13 19:24:00
当然是由 cpu 处理的
我来回复