作者thatone (野猫老大)
看板ASM
标题Re: [问题] 请问如何读写延伸记忆体呢??
时间Tue Jan 16 09:46:48 2007
※ 引述《coldcoldday (找到一份"对"的工作好难)》之铭言:
: 先说明我是初学者>_<
: ..............................
: 在传统模式下
: 暂存器可以定址到64K(AX,BX,CX,DX=0~FFFF.....)
: 也就是只能直接控制到记忆体的0~1M
: 但在保护模式下
: 如果我想控制或读写 1MB以上的记忆体
: 我该如何做呢??
: 该用什麽指令??
: 可以顺便贴个范例给我看吗
: 感恩
你说的很草率,你的OS是DOS还是Win32?
我想你会这麽问指的应该是DOS
这种范例不是贴个一两页就说的清楚的
几个方向给你去找罗
第一个是找XMS延伸记忆体的服务,以前DOS有个HIMEM.SYS
就是提供XMS的服务,好像叫做DPMI吧...忘了
这种XMS只能当BUFFER来COPY东西,不能直接使用
记忆体一样64K限制,所有直接动作必须在主记忆体完成
可以在真实模式下运作
再来是EMS扩充记忆体,再CONFIG.SYS中应该是EMM386.EXE
是使用虚拟记忆体分页技术,可以直接存取
一样是用在真实模式
最後是DOS Extender,例如DOS4GW,个人比较推荐PMODE/W
这个一样是透过DPMI去取得延伸记忆体
不同的是它可以直接存取延伸记忆体,没有64K限制
还可以自订CPU异常处理来做一些特异功能
内定使用32bit暂存器(eax...)
除此之外还有一条绝路,就是自己进入保护模式
这个我也不会(小时候没学好) Orz
如果你真的初学,就千万不要折磨自己了
现在也很难找的到人问,资料也不多
就算写出来,你还要有保护模式的DEBUGGER(以前Watcom C的不错)
剩下的去google看看吧...祝好运
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.185.208
1F:推 PsMonkey:看不懂,不过来推一下 \囧/ 01/16 13:32