中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 请问有否DOS上的支持实模式且可使用32位寄存器和大内存的C
作者:
标题: 请问有否DOS上的支持实模式且可使用32位寄存器和大内存的C 上一主题 | 下一主题
marchsnow
初级用户




积分 110
发帖 3
注册 2005-4-20
状态 离线
『楼 主』:  请问有否DOS上的支持实模式且可使用32位寄存器和大内存的C

因开发底层软件,一直使用DOS环境下的BORLANDC3.1,但这个软件可能太老些了吧,不但不能使用大内存,而且连32位寄存器也无法使用,据说DGJPP比较好,但只支持保护模式,本人开发的程序必须运行在实模式下(要进行直接I/O操作和中断调用),请问各位老师,有否DOS上的支持实模式且可使用32位寄存器和大内存的类似BC语言集成调试环境?谢谢!dhwang@163.com

2005-4-20 00:00
查看资料  发送邮件  发短消息 网志  OICQ (21124919)  编辑帖子  回复  引用回复
郭恒
中级用户




积分 225
发帖 39
注册 2004-10-6
状态 离线
『第 2 楼』:  


    不能怪“BC31”,看到您这个问题,颇有同感,它也困扰了我好几年,我始终相
信Borland公司不是傻蛋。您提出这个问题后,刺激我去试一试。“天啊”,我自己都
不敢相信自己的眼睛:OK了!!! 我高兴,我欢呼,我好激动......在菜单------选中[Options]->[Compile Via assemble]
     或者是
            选中[Options]->[Generate assembler Source]32位寄存器从此解决了。谢谢您,亲爱的Marchsnow!您让我改变了对Bc31的态度!
      例如:void main(){    asm mov ax, 0    asm mov eax, 0    asm{          mov ax, 0          mov eax, ebx     };}


2005-4-21 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
marchsnow
初级用户




积分 110
发帖 3
注册 2005-4-20
状态 离线
『第 3 楼』:  

亲爱的郭先生:您好!
首先,非常感谢您的帮助指教!
您说的通过assemble进行编译的办法,前一段时间我也曾试过,不过BC31默认的汇编语言编译器是TASM1.0,它好像也不认识32位寄存器,所以曾尝试用MASM6.11替代TASM1.0进行编译,但不知是否操作问题,没成功,就没再试验。一会再试一下。谢谢您!还有,打开和使用高端内存有什么好的方法吗?请赐教!谢谢您!


2005-4-22 00:00
查看资料  发送邮件  发短消息 网志  OICQ (21124919)  编辑帖子  回复  引用回复
郭恒
中级用户




积分 225
发帖 39
注册 2004-10-6
状态 离线
『第 4 楼』:  

  
    关于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空间.所以“直接访问常规内存”之外的内存是相当危险的,并
且不兼容其它操作系统。  

2005-4-22 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
marchsnow
初级用户




积分 110
发帖 3
注册 2005-4-20
状态 离线
『第 5 楼』:  

不好意思,我刚才试了一下,通过了,我的版本号也是TASM3.1,上次估计可能是忘了修改CPU为80386了!非常感谢您!至于大内存问题吧,我现在做一个系统的安装程序,需要在DOS下,加载尽可能少的驻留程序的情况下,完成NTFS分区的格式化工作和类似碎片整理的工作,BC好像最大只能分配不到64K内存,所以要频繁读盘,可现在的硬盘动辄几十G,速度很慢,需等待的时间很难容忍,所以有可能的情况下想通过尽可能多的内存来缓解运行速度。不知是否有方便的方法?

2005-4-22 00:00
查看资料  发送邮件  发短消息 网志  OICQ (21124919)  编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 6 楼』:  

啊....都是高手啊...

2005-4-25 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bigboy2050
初级用户





积分 41
发帖 4
注册 2005-7-27
状态 离线
『第 7 楼』:  

大侠啊!!!!!!!

2005-8-11 18:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
boblhh9999
中级用户




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 8 楼』:  

这个问题很经典,希望高手门多多发表见解。

2005-8-11 19:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: