中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-14 23:53
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS开发编程 & 发展交流 (开发室) » dos下超出常规内存的编程
可打印版本  2,009 / 1
第1楼 jacky1225 发表于 2010-11-28 20:33
新手上路 发帖 3 积分 8
dos下超出常规内存的编程
有一个程序,是borland pascal 7.0 for dos 写的。现在要给里面加一些功能,需要定义一个大的数组,这个数组大概占100K吧。可能之前的程序都快接近DOS常用规内存极限了。现在加个这个数组,总提示数据段超出。看帮助文档,说是可以以开僻内存的形式(malloc),发现运行后出现heap overflow. 是不是得用保护模式编程??或者有什么办法可以让我定义大的数组??谢谢各位了。
第2楼 netwinxp 发表于 2010-12-04 18:36
高级用户 发帖 366 积分 741
1、即便是Huge模式,单项静态数据也不得超过64K,所以最好用汇编编写一个居于xms接口来把数据放到xms里面,把汇编后的obj连接进来以供Pascal使用。
2、Turbo Pascal 7/7.01的CRT.ASM模块有严重问题,在高于200M的CPU上很容易出现除0溢出,严重不推荐此版本,如果硬要使用,要修改CRT.ASM并重新生成CRT库。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023