DOS保护模式(200分)

  • 主题发起人 主题发起人 虚心
  • 开始时间 开始时间

虚心

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个程序,是在DOS环境下用C++语言编写的。现在因为程序量很大,DOS下内存管理不能满足需要,想将程序移植到DOS保护模式下运行。这方面的参考书较少,谁有高招,请多多赐教!
 
不过如过你对合作编写类似大富翁这样的站点有兴趣的话,
请与<a href="mailto:fuutao@263.net">我</a>联系!
 
对不起!上面的贴子发错的放了!
不过!您的问题可以试着这样办,选中dos图标,
点击鼠标右键,出现对话框,选中属性项,选择
"内存"标签,把ms_dos保护方式的内存改为
65535,点击"ok",然后在dos下再试着运行
一下你的程序。
来自<a href="http://WWW.XIYOU.EDU.CN">西邮</a>
 
Easy. try Watcom C/C++ or Borland C++ Power Pack.
They both containdo
s Protected Mode support.
 
本人这有日文的Dos实方式与保护方式的基本原理以及变换和基本实例,你的日语
不是很好的话,可惜了!:-(
现在书店里有关于80x86的内部编程之类的书籍,可去那去寻,可能数量也较少了!
 
GCC也可以的,不过用了它
你的程序就得遵守GPL了
 
啊,很多年以前,我用Watcom C++编程.她的DOS保护模式内存非常好,
好多老游戏都是她编的.
如果你的程序是Microsoft C++编的,就很好移植.
要是Borland C++特别是用了BGI的哈,费劲一些.
 
Jams,
我也非常需要这些资料,汇编材料只是介绍基本概念和指令,但没有实际的操作。
比如,对A20线的操作就是一个最基本的问题,但没有任何资料详细介绍过。
如有可能,请您把资料mail给我,或告诉我在何处下载,别说是日文,就是西班牙文我也找人把他翻出来!
如果资料的结果的确可行,我愿出500分!
 
我在网上获得的解答,for your reference.
:I want to write a small program in assembler, this program will :help us enter 386 protected mode from real mode after boot. :The problem I encountered it that Ido
n't know how to :enable/disable the A20 gate... Need more info. Is XMS installed, you got the offset to it's call point?
To manually override...
cli
mov al, 0D1h
out 64h, al
mov al, 0DDh
out 60h, al
sit
But this code assumes allot of things.
int 2Fh, 1687h will get you the call entry to DPMI via ES:DI and SI will contain the size of the DPMI host. Alloc mem for host's size, if any, then
mov that ret into es, clear out ax, and call the entry point.
Check Wrox MasterClass Asm src code, it's on their page www.wrox.com and Walter Oney goes over this in Sys Programming for Windows 95 using DPMI.
<><><>
 
如果是代码太大那么只有用保护模式了,如果是数据空间不够,可以考虑使用
EMS,XMS等内存规范使用640k以上的内存,以往许多中文系统和游戏都是这么做的。
另外是否可以试一下改成Win32的CONSOLE程序,实现起来应该比较简单。
 
有许多书将如何使用EMM386,此外,INT15中有相应的服务可以调用XMS.
想真正了解保护模式编程,LINUX源代码一定可以参考.
 
多人接受答案了。
 
后退
顶部