中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 09:35
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » dos下超出常规内存的编程 查看 1,710 回复 1
楼 主 dos下超出常规内存的编程 发表于 2010-11-28 20:33 ·  中国 陕西 西安 电信
新手上路
积分 8
发帖 3
注册 2010-11-24 22:44
UID 178213
性别 男
状态 离线
有一个程序,是borland pascal 7.0 for dos 写的。现在要给里面加一些功能,需要定义一个大的数组,这个数组大概占100K吧。可能之前的程序都快接近DOS常用规内存极限了。现在加个这个数组,总提示数据段超出。看帮助文档,说是可以以开僻内存的形式(malloc),发现运行后出现heap overflow. 是不是得用保护模式编程??或者有什么办法可以让我定义大的数组??谢谢各位了。
2 发表于 2010-12-04 18:36 ·  中国 福建 厦门 电信
高级用户
★★★
积分 741
发帖 366
注册 2007-07-25 19:11
UID 94024
性别 男
状态 离线
1、即便是Huge模式,单项静态数据也不得超过64K,所以最好用汇编编写一个居于xms接口来把数据放到xms里面,把汇编后的obj连接进来以供Pascal使用。
2、Turbo Pascal 7/7.01的CRT.ASM模块有严重问题,在高于200M的CPU上很容易出现除0溢出,严重不推荐此版本,如果硬要使用,要修改CRT.ASM并重新生成CRT库。
论坛跳转: