使程序常驻的方法
使程序常驻的方法(DOS下TSR程序的原理)
当MS-DOS由此磁盘装入程序执行时,通常会把程序装入到最低的可用地址开始存放。如下图所示。
┏━━━━━━━┓
┃ 系统空间 ┃
┃ MS-DOS使用 ┃
┣━━━━━━━┫←最低可用地址
┃ 用户空间 ┃
┃(user program)┃
┃ ┃
┃ ┃
┗━━━━━━━┛←最高可用地址(640K)
当执行下一个程序时,MS-DOS还是把程序装入至同样的RAM区域执行。
TURBO C提供了一个叫做keep()的函数可以使程序常驻于RAM。以keep()结束程序,DOS会把该程序所用到的空间保留,使得以后执行的程序会装入到该常驻程序后面的地址,因而程序便得以常驻而不被覆盖。使用keep()函数要指定2个值:指定status值作为结束码以返回给DOS,指定程序结束时所要保留的内存空间的大小。