C语言内存驻留技术:TSR程序的实现与应用
版权申诉
5星 · 超过95%的资源 13 浏览量
更新于2024-10-25
收藏 7KB RAR 举报
资源摘要信息:"程序内存驻留程序(TSR)8"
标题中提到的"TSR"代表的是"Terminator/Stay-Resident"程序,这是一种在DOS操作系统中广泛使用的程序类型,能够在执行完正常功能后将自己的一部分代码驻留在内存中。TSR程序是由于早期个人电脑资源有限,以及操作系统的功能不完善而产生的,它们通常用于实现一些后台服务,如防病毒监控、定时任务、键盘宏等。
在描述中提到的C语言实现程序内存驻留的函数是"keep()",这是DOS时代的一个特殊函数,专门用于将程序驻留在内存中。"keep()"函数的原型在某些编译器的文档中可以找到,但现代编程环境和操作系统中已经不再使用这样的函数。参数"status"是返回给操作系统的一个出口代码,表示程序执行的状态;"size"参数用于指定驻留内存的长度。在描述中还提到了一个估算内存大小的方法,即使用"size=_SS+_SP/16-_psp"来计算。这里涉及到了DOS中断和寄存器的知识。
- _SS (Stack Segment) 是栈段寄存器,表示当前使用的栈段基址。
- _SP (Stack Pointer) 是栈指针寄存器,表示当前栈顶的位置。
- _psp (Program Segment Prefix) 是程序段前缀,是DOS分配给每个程序的一段内存区域,用于存储程序的状态信息。
因此,"size=_SS+_SP/16-_psp"这个公式计算出的是程序当前占用的内存大小。
描述中还提到了中断的使用,特别是"geninterrupt(0x60)"这个函数调用。在DOS系统中,中断调用是通过INT指令实现的,0x60是一个中断向量号,它在DOS系统中并没有被预定义使用。因此,可以将其拦截用于自己的程序。但是,一旦拦截了这个中断,系统将无法正常使用它,除非重启计算机来恢复中断向量的原始设置。
此外,描述中提到的"此后在其它的任何软件或程序设计中,只要用到了60H号中断,就会在屏幕上显示“This is an example!”的字样"说明了TSR程序的一个重要特性,即能够在中断被调用时执行自己的代码,从而实现对系统底层的控制和响应。
标签"size_0 tsr"表明了该压缩包中的文件可能与内存大小计算和TSR程序有关。而文件列表中的两个文件名,一个是文档格式,可能包含关于TSR程序的更多技术细节或使用示例;另一个是文本文件,可能包含一些相关的下载链接或资源地址,但没有更多具体信息,无法确定其详细内容。
总结来说,通过这个描述,我们可以了解到DOS时代的编程技巧,特别是在内存管理和中断处理方面的知识。这些技巧和概念在现代计算机编程中已经被更高级和安全的技术所取代,但在研究老旧系统或软件复原时仍然具有参考价值。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-09-22 上传
2022-09-20 上传
2022-09-14 上传
2022-09-23 上传
2022-09-24 上传
2022-09-14 上传
御道御小黑
- 粉丝: 78
- 资源: 1万+
最新资源
- 近探拓客软件-实现日更新的全国工商数据采集的工具-工商数据采集工具免费下载V21.4.1
- telescope_hoogle:望远镜的Hoogle搜索集成
- passwordGenerator:此分配使用math.random为用户生成密码
- dotnet C# 根据椭圆长度和宽度和旋转角计算出椭圆中心点的方法.rar
- ProjectManager:.NET Core中的简单项目管理
- Muzisung_FE:这是无知项目前端的存储库。
- Mysis_DVM_Modeling:我的高级论文项目“为 Diluviana 的 Diel 垂直迁移模式建模”的代码和头脑风暴。
- torch_spline_conv-1.2.1-cp36-cp36m-linux_x86_64whl.zip
- CMTraerPhysics:Traer v3.0物理引擎的Objective-CCocoa端口; 与iOS演示应用程序
- bilingual-pdf:由英文PDF生成双语PDF,回归原生加速长篇英文阅读!
- js-demo:关于本人博客中关于js的使用的代码示例
- 清水混凝土模板支撑施工方案.zip
- 来自“菜鸟教程”JavaScript实例练习【二】web.zip
- 仿天猫静态页面 登陆/注册/首页/天猫超市页/购物车/手机列表页 Tmall.zip
- 淘特新闻管理系统 v4.0.4
- Class-33