中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: dos下超出常规内存的编程 上一主题 | 下一主题
jacky1225
新手上路





积分 8
发帖 3
注册 2010-11-24
状态 离线
『楼 主』:  dos下超出常规内存的编程

有一个程序,是borland pascal 7.0 for dos 写的。现在要给里面加一些功能,需要定义一个大的数组,这个数组大概占100K吧。可能之前的程序都快接近DOS常用规内存极限了。现在加个这个数组,总提示数据段超出。看帮助文档,说是可以以开僻内存的形式(malloc),发现运行后出现heap overflow. 是不是得用保护模式编程??或者有什么办法可以让我定义大的数组??谢谢各位了。

2010-11-28 20:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 2 楼』:  

1、即便是Huge模式,单项静态数据也不得超过64K,所以最好用汇编编写一个居于xms接口来把数据放到xms里面,把汇编后的obj连接进来以供Pascal使用。
2、Turbo Pascal 7/7.01的CRT.ASM模块有严重问题,在高于200M的CPU上很容易出现除0溢出,严重不推荐此版本,如果硬要使用,要修改CRT.ASM并重新生成CRT库。

2010-12-4 18:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: