中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 18:58
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 请问有否DOS上的支持实模式且可使用32位寄存器和大内存的C
可打印版本  1,655 / 7
第1楼 marchsnow 发表于 2005-04-20 00:00
初级用户 发帖 3 积分 110
请问有否DOS上的支持实模式且可使用32位寄存器和大内存的C
因开发底层软件,一直使用DOS环境下的BORLANDC3.1,但这个软件可能太老些了吧,不但不能使用大内存,而且连32位寄存器也无法使用,据说DGJPP比较好,但只支持保护模式,本人开发的程序必须运行在实模式下(要进行直接I/O操作和中断调用),请问各位老师,有否DOS上的支持实模式且可使用32位寄存器和大内存的类似BC语言集成调试环境?谢谢![email protected]
第2楼 郭恒 发表于 2005-04-21 00:00
中级用户 发帖 39 积分 225

不能怪“BC31”,看到您这个问题,颇有同感,它也困扰了我好几年,我始终相
信Borland公司不是傻蛋。您提出这个问题后,刺激我去试一试。“天啊”,我自己都
不敢相信自己的眼睛:OK了!!! 我高兴,我欢呼,我好激动......在菜单------选中->
或者是
选中->32位寄存器从此解决了。谢谢您,亲爱的Marchsnow!您让我改变了对Bc31的态度!
例如:void main(){ asm mov ax, 0 asm mov eax, 0 asm{ mov ax, 0 mov eax, ebx };}
第3楼 marchsnow 发表于 2005-04-22 00:00
初级用户 发帖 3 积分 110
亲爱的郭先生:您好!
首先,非常感谢您的帮助指教!
您说的通过assemble进行编译的办法,前一段时间我也曾试过,不过BC31默认的汇编语言编译器是TASM1.0,它好像也不认识32位寄存器,所以曾尝试用MASM6.11替代TASM1.0进行编译,但不知是否操作问题,没成功,就没再试验。一会再试一下。谢谢您!还有,打开和使用高端内存有什么好的方法吗?请赐教!谢谢您!
第4楼 郭恒 发表于 2005-04-22 00:00
中级用户 发帖 39 积分 225

关于32位寄存器,我的BC31的Tasm.exe版本是V3.1,编译链接通过。
“打开和使用高端内存”可调用XMS扩展内存管理程序分配获得。由于高位内存大约只有64K不到(65520字节),不知您为什么要使用它,并且它是全局唯一分配的,所
以它可能被其它程序占有,很难分配成功!例如您在Config.Sys中有如下语句
DOS=HIGH,UMB
如果您是直接访问高位内存的话,可以直接打开A20地址线(可查相关x86书籍获得),在实模式下就可以用“Seg:Offset”访问到.。
如果您需要大内存来保存数据,建议用XMS扩展内存来存贮。它在DOS下有4GB,Win9x有4M空间,
在Win2000有2M空间,在WinXp有2M空间.所以“直接访问常规内存”之外的内存是相当危险的,并
且不兼容其它操作系统。
第5楼 marchsnow 发表于 2005-04-22 00:00
初级用户 发帖 3 积分 110
不好意思,我刚才试了一下,通过了,我的版本号也是TASM3.1,上次估计可能是忘了修改CPU为80386了!非常感谢您!至于大内存问题吧,我现在做一个系统的安装程序,需要在DOS下,加载尽可能少的驻留程序的情况下,完成NTFS分区的格式化工作和类似碎片整理的工作,BC好像最大只能分配不到64K内存,所以要频繁读盘,可现在的硬盘动辄几十G,速度很慢,需等待的时间很难容忍,所以有可能的情况下想通过尽可能多的内存来缓解运行速度。不知是否有方便的方法?
第6楼 jawbin 发表于 2005-04-25 00:00
高级用户 发帖 444 积分 994
啊....都是高手啊...
第7楼 bigboy2050 发表于 2005-08-11 18:41
初级用户 发帖 4 积分 41
大侠啊!!!!!!!
第8楼 boblhh9999 发表于 2005-08-11 19:11
中级用户 发帖 74 积分 316
这个问题很经典,希望高手门多多发表见解。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023