如何用turbo c实现内存驻留程序?

hanxiang 2000-06-11 02:15:00
...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
holyfire 2001-05-15
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/90/90555.shtm
http://www.csdn.net/expert/topic/105/105710.shtm
http://www.csdn.net/expert/topic/96/96438.shtm
http://www.csdn.net/expert/topic/100/100259.shtm

看看这几个贴子会对你有所帮助。
soloxu 2001-05-15
  • 打赏
  • 举报
回复
to lyzcom(与狼共舞) 我 也想要一份
hoyle 2000-07-11
  • 打赏
  • 举报
回复
还是用汇编吧,如果程序不大的话,可以直接用DEBUG写.COM
lyzcom 2000-07-11
  • 打赏
  • 举报
回复
HALFDREAM的意见我不同意。DOS下的程序员依然是伟大的!!!如果您要程序,可以发一封E-MAIL给我,我可以送您源代码。
halfdream 2000-06-11
  • 打赏
  • 举报
回复
很麻烦。
比直接用汇编写要麻烦得多。
因为C 用堆栈的地方太多。
我以前做过一些尝试, 花了不少精力,
玩玩可以,
但现在发觉没有什么大用。
DOS已经是昨日黄花。
SCUM 2000-06-11
  • 打赏
  • 举报
回复

1. 写好一个中断处理函数 (ISR)
2. 替换旧中断
3. 驻留退出. ( 可用 keep() )

效率不会高, 还要小心 DOS 重入.
作  者:吴向军 等 著 丛 书 名:普通高等教育“十一五”国家级规划教材 出 版 社:高等教育出版社 ISBN:9787040279498 出版时间:2009-11-01 版  次:2 页  数:386 装  帧:平装 开  本:16开 内容简介   《汇编语言程序设计(第2版)》以16位/32位Intel CPU为介绍对象,以并行推进的方式介绍这两类CPU的指令系统,以达到相互参考、对照的效果。另外,本书还介绍了常用的编程环境和调试工具的使用方法。   在内容组织上,把学习高级语言的习惯和汇编语言的特点相结合,按“硬件资源—变量定义一指令系统—编程”的顺序安排相应的内容。结合MASM V6.1x的编程环境,使汇编语言源程序具有一定的高级语言特点和结构。书中用一章来介绍浮点数的表示、浮点运算指令和编程方法,使读者对高级语言中的各种数据类型与低层实现之间的联系有一个更清晰的认识。还用一章介绍了用汇编语言编写Windows应用程序的基本方法,为拓宽汇编语言的应用领域做一点尝试。   书中附有一些基本的编程辅助信息,这些信息包括各种按键的码值和显示颜色信息等。在Windows应用程序的编写部分,附录中给出了编程中所用到的一些常量列表和函数功能的说明。这些辅助信息可为编程带来一定的方便,也可作为常用手册以待查阅。   《汇编语言程序设计(第2版)》可作为计算机学科的本科生、大专生及相近专业学生的教材,也可作为相关工程技术人员的学习资料或参考书。 目录 第一章 预备知识 1.1 汇编语言的由来及其特点 1.1.1 机器语言 1.1.2 汇编语言 1.1.3 汇编程序 1.1.4 汇编语言程序的主要特点 1.1.5 汇编语言的应用领域 1.2 数据的表示和类型 1.2.1 数值数据的表示 1.2.2 非数值数据的表示 1.2.3 基本数据类型 习题 第二章 CPU资源和存储器 2.1 寄存器组 2.1.1 寄存器组 2.1.2 通用寄存器 2.1.3 段寄存器 2.1.4 专用寄存器 2.2 存储器的管理模式 2.2.1 16位微机的内存管理模式 2.2.2 32位微机的内存管理模式 习题 第三章 操作数的寻址方式 3.1 立即寻址方式 3.2 寄存器寻址方式 3.3 直接寻址方式 3.4 寄存器间接寻址方式 3.5 寄存器相对寻址方式 3.6 基址加变址寻址方式 3.7 相对基址加变址寻址方式 3.8 32位地址的寻址方式 习题 第四章 标识符和表达式 4.1 标识符 4.2 简单内存变量的定义 4.2.1 内存变量定义的一般形式 4.2.2 字节变量 4.2.3 字变量 4.2.4 双字变量 4.2.5 六字节变量 4.2.6 八字节变量 4.2.7 十字节变量 4.2.8 浮点类型变量 4.3 调整偏移量伪指令 4.3.1 偶对齐伪指令EVEN 4.3.2 对齐伪指令ALIGN 4.3.3 调整偏移量伪指令ORG 4.3.4 偏移量计数器的值 4.4 复合内存变量的定义 4.4.1 重复说明符DUP 4.4.2 结构类型的定义 4.4.3 联合类型的定义 4.4.4 记录类型的定义 4.4.5 数据类型的自定义 4.5 标号 4.6 内存变量和标号的属性 4.6.1 段属性操作符 4.6.2 偏移量属性操作符 4.6.3 类型属性操作符 4.6.4 长度屑性操作符 4.6.5 容量属性操作符 4.6.6 强制属性操作符 4.6.7 存储单元别名操作符 4.7 表达式 4.7.1 进制伪指令RADIX 4.7.2 数值表达式 4.7.3 地址表达式 4.8 符号定义语句 4.8.1 等价语句 4.8.2 等号语句 4.8.3 符号名定义语句 习题 第五章 微机CPU的指令系统 5.1 汇编语言指令格式 5.1.1 指令格式 5.1.2 指令的几个属性 5.2 指令系统 5.2.1 数据传送指令 5.2.2 标志位操作指令 5.2.3 算术运算指令 5.2.4 逻辑运算指令 5.2.5 移位操作指令 5.2.6 位操作指令 5.2.7 比较运算指令 5.2.8 循环指令 5.2.9 转移指令 5.2.10 条件设置字节指令 5.2.11 字符串操作指令 5.2.12 ASCⅡ-BCD码运算调整指令 5.2.13 处理器指令 习题 第六章 程序的基本结构 6.1 源程序的基本组成 6.1.1 段的定义 6.1.2 段寄存器的说明语句 6.1.3 堆栈段的说明 6.1.4 源程序的结构 6.2 程序的基本结构 6.2.1 顺序结构 6.2.2 分支结构 6.2.3 循环结构 6.3 段的基本属性 6.3.1 对齐类型(ALIGN) 6.3.2 组合类型(COMBINE) 6.3.3 类别(CLASS) 6.3.4 段组(GROUP) 6.4 简化的段定义 6.4.1 存储模式说明伪指令 6.4.2 简化段定义伪指令 6.4.3 简化段段名的引用 6.5 源程序的辅助说明伪指令 习题 第七章、子程序和库 7.1 子程序的定义 7.2 子程序的调用和返回指令 7.2.1 调用指令 7.2.2 返回指令 7.3 子程序的参数传递 7.3.1 寄存器传递参数 7.3.2 约定存储单元传递参数 7.3.3 堆栈传递参数 7.4 寄存器的保护与恢复 7.5 子程序的完全定义 7.5.1 子程序完全定义格式 7.5.2 子程序的位距 7.5.3 子程序的语言类型 7.5.4 子程序的可见性 7.5.5 子程序的“起始”和“结束”操作 7.5.6 寄存器的保护和恢复 7.5.7 子程序的参数传递 7.5.8 子程序的原型说明 7.5.9 子程序的调用伪指令 7.5.10 局部变量的定义 7.6 子程序库 7.6.1 建立库文件命令 7.6.2 建立库文件举例 7.6.3 库文件的应用 7.6.4库文件的好处 习题 第八章 输入输出和中断 8.1 输入输出的基本概念 8.1.1 I/O端口地址 8.1.2 I/O指令 8.2 中断 8.2.1 中断的基本概念 8.2.2 中断指令 8.2.3 中断返回指令 8.2.4 中断和子程序调用 8.3 中断功能的分类 8.3.1 键盘输入的中断功能 8.3.2 屏幕显示的中断功能 8.3.3 打印输出的中断功能 8.3.4 串行通信口的中断功能 8.3.5 鼠标的中断功能 8.3.6 目录和文件的中断功能 8.3.7 内存管理的中断功能 8.3.8 读取/设置中断向量 习题 第九章 宏 9.1 宏的定义和引用 9.1.1 宏的定义 9.1.2 宏的引用 9.1.3 宏的参数传递方式 9.1.4 宏的嵌套定义 9.1.5 宏与子程序的区别 9.2 宏参数的特殊运算符 9.2.1 连接运算符 9.2.2 字符串整体传递运算符 9.2.3 字符转义运算符 9.2.4 计算表达式运算符 9.3 与宏有关的伪指令 9.4 重复汇编伪指令 9.4.1 伪指令REPT 9.4.2 伪指令IRP 9.4.3 伪指令IRPC 9.5 条件汇编伪指令 9.5.1 条件汇编伪指令的功能 9.5.2 条件汇编伪指令的举例 9.6 宏的扩充 9.6.1 宏定义形式 9.6.2 重复伪指令REPEAT 9.6.3 循环伪指令WHILE 9.6.4 循环伪指令FOR 9.6.5 循环伪指令FORC 9.6.6 转移伪指令GOTO 9.6.7 宏扩充的举例 9.6.8 系统定义的宏 习题 第十章 应用程序设计 10.1 字符串的处理程序 10.2 数据的分类统计程序 10.3 数据转换程序 10.4 文件操作程序 10.5 动态数据的编程 10.6 COM文件的编程 10.7 驻留程序 10.8 程序段前缀及其应用 10.8.1 程序段前缀的字段含义 10.8.2 程序段前缀的应用 习题 第十一章 数值运算协处理器 11.1 协处理器的数据格式 11.1.1 有符号整数 11.1.2 BCD码数据 11.1.3 浮点数 11.2 协处理器的结构 11.2.1 协处理器的内部结构 11.2.2 状态寄存器 11.2.3 控制寄存器 11.2.4 标记寄存器 11.3 协处理器的指令系统 11.3.1 指令操作符的命名规则 11.3.2 数据传送指令 11.3.3 数学运算指令 11.3.4 比较运算指令 11.3.5 超越函数运算指令 11.3.6 常数操作指令 11.3.7 协处理器控制指令 11.4 协处理器的编程举例 习题 第十二章 汇编语言和C语言的混合编程 12.1 汇编指令的嵌入 12.2 C语言源程序的汇编输出 习题 第十三章 Windows应用程序的编程 13.1 消息框 13.2 编程伪指令 13.2.1 多路分支语句 13.2.2 调试语句 13.3 Windows程序的结构 13.3.1 Windows程序的基本结构 13.3.2 程序的初始化阶段 13.3.3 窗口的准备阶段 13.3.4 消息循环阶段 13.3.5 消息处理阶段 13.4 Windows应用程序 13.4.1 按钮控件的应用 13.4.2 对话框的定义 13.4.3 对话框和控件的应用 13.4.4 绘画和图像的应用 13.4.5 命令行参数的处理 习题 第十四章 汇编语言编程环境和调试工具 14.1 汇编语言编程环境 14.1.1 MASM 6.1x 14.1.2 Turbo Assembler 14.1.3 MASM32 14.2 调试工具 14.2.1 Debug 14.2.2 CodeView 14.2.3 Turbo Debugger 14.2.4 VKdebug 附录 附录一 键盘按键的各种编码对照表 附录二 显示地址及其显示属性 附录三 Windows中各类预定义常量 附录四 Windows应用程序中部分API函数 参考文献
样加快电脑开机时间 一、BIOS的优化设置   在BIOS设置的首页我们进入“Advanced BIOS Features”选项,将光标移到“Frist Boot Device”选项,按“PageUP”和“PageDOWN”进行选择,默认值为“Floppy”,这表示启动时系统会先从软驱里读取启动信息,这样做会加长机器的启动时间,减短软驱的寿命。所以我们要选“HDD-0”直接从硬盘启动,这样启动就快上好几秒。另外,对于BIOS设置中的“Above 1MbMemoryTest”建议选“Disabled”,对于“QuickPowerOnSelftest”建议选择Enabled。   在“Advanced Chipset Features”项中的设置对机子的加速影响非常大,请大家多加留意。将“Bank 0/1 DRAM Timing”从“8ns/10ns”改为“Fast”或“Turbo”。“Turbo”比“Fast”快,但不太稳定,建议选“Fast”。如果内存质量好可以选“Turbo”试试,不稳定可以改回“Fast”。   对于内存品质好的内存条建议在“SDRAM CAS Latency”选项中设置为“2”,这样可以加快速度哦。   较新的主板都支持AGP4X,如果你的显卡也支持AGP4X,那么就在“AGP-4XMode”处将这项激活,即选为“Enabled”,这才会更好的发挥显卡的能力,加快系统启动速度。   二、启动DMA方式,提高硬盘速度   采用UDMA/33、66、100技术的硬盘最高传输速率是33MB/s、66MB/s、100MB/s,从理论上来说是IDE硬盘(这里是指PIO MODE4 模式,其传输率是16.6MB/s)传输速率的3~6倍,但是在Windows里面缺省设置中,DMA却是被禁用的,所以我们必须将它打开。   具体方法是:打开“控制面板→系统→设备管理器”窗口,展开“磁盘驱动器”分支,双击UDMA硬盘的图标,进入“属性→设置→选项”,在“DMA”项前面“√”,然后按确定,关闭所有对话框,重启电脑即可。   三、去掉Windows的开机标志。   首先你要打开“开始”→“设置”→“文件夹选项”,从“查看”标签里的“高级设置”列表框中勾选“显示所有文件”。然后打开C盘,找到MSdos.sys这个文件,并取消它的“只读”属性,打开它,在“Option”段落下,加上一行语句:LOGO=0,这样Windows的开机图案就不会被加载运行,开机时间也可以缩短3秒钟。   四、优化“启动”组。   电脑初学者都爱试用各种软件,用不多久又将其删除,但常常会因为某些莫名其妙的原因,这些软件还会驻留在“启动”项目中(尤其是在使用一些D版软件时),Windows启动时就会为此白白浪费许多时间。要解决这个问题,其实很简单,你可以打开“开始”→“运行”,在出现的对话框的“打开”栏中选中输入“msconfig”,然后点击“确定”,就会调出“系统配置实用程序”,点击其中的“启动”标签,将不用载入启动组的程序前面的“√”去掉就可以了。如此一来,至少可以将启动时间缩短10秒。   五、整理、优化注册表。   Windows在开机启动后,系统要读取注册表里的相关资料并暂存于RAM(内存)中,Windows开机的大部分时间,都花费了在这上面。因此,整理、优化注册表显得十分必要。有关注册表的优化,可以使用Windows优化大师等软件。以Windows优化大师,点击“注册信息清理”→“扫描”(如图1),软件就会自动替你清扫注册表中的垃圾,在扫描结束后,会弹出个菜单让你选择是否备份注册表,建议选择备份,备份后再点击“清除”即可。   六、经常维护系统。   如果在系统中安装了太多的游戏、太多的应用软件、太多的旧资料,会让你的电脑运行速度越来越慢,而开机时间也越来越长。因此,最好每隔一段时间,对电脑做一次全面的维护。点击“开始”→“程序”→“附件”→“系统工具”→“维护向导”,然后点击“确定”按钮即可对电脑进行一次全面的维护,这样会使你的电脑保持在最佳状态。对于硬盘最好能每隔2个星期就做一次“磁盘碎片整理”,那样会明显加快程序启动速度的,点击“系统工具”→“磁盘碎片整理程序”即可。注意在整理磁盘碎片时系统所在的盘一定要整理,这样才能真正加快Windows的启动顺序。   七、扩大虚拟内存容量。   如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文件的空间上,可以更好的发挥作用。   八、去掉“墙纸”、“屏幕保护”等花哨的设置。   这些设置占用系统资源不说,还严重影响Windows的启动顺序。去掉它们的方法是:在桌面空白处点击鼠标右键,在弹出的菜单中选择“属性”,在弹出的对话框中分别选择“背景”和“屏幕保护程序”标签,将“墙纸”和“屏幕保护程序”设置为“无”即可。   九、删除Autoexec.bat和Config.sys。   系统安装盘根目录下的Autoexec.bat和Config.sys这两个文件,Windows已经不需要它们了,可以将它们安全删除,这样可以加快Windows的启动速度。   十、精简*.ini文件,尤其是System.ini和Win.ini的内容。   在system.ini的[boot]和[386Enh]小节中加载了许多驱动程序和字体文件,是清除重点。尤其要注意的是,[boot]字段的shell=Explorer.exe是木马喜欢的隐蔽加载之所,木马们通常会将该句变为这样:shell=Explorer.exe file.exe,注意这里的file.exe就是木马服务端程序!有了木马随后加载运行不仅对系统安全造成了威胁,电脑启动也慢了许多;对Win.ini中的“Run”及“Load”后面加载的、不是每次开机必须运行的程序,可以暂时清除,等以后要用时再点击运行。这样开机时Windows调用的相关文件就会减少许多,启动速度自然就会快多了。   十一、关闭磁盘扫描。   用文本编辑器打开msdos.sys,会看到以下内容: [Options] bootmulti=1 bootgui=1 autoscan=1   如果不想非正常关机后运行磁盘扫描程序,可以把atuoscan=1改为autoscan=0,这样在非正常关机后计算机的启动速度也会快上一些(因为scandisk没有运行嘛)。   十二、让引导信息停留时间最短。   用文本编辑器打开msdos.sys,设置[Options]中的BootDelay为0即可。   十三、减少不必要的字体文件。   字体文件占用系统资源多,引导时很慢,并且占用硬盘空间也不少。因此尽量减少不必要的字体文件。但如果删错了字体文件,搞不好会使Windows不正常。因此可以采用下面这个“偷梁换柱”的方法(可以实现字体文件的安装,而不占用大量的磁盘空间):首先打开字库文件夹(如F:zk),选中全部TrueType字体文件,用鼠标的右键将它们拖动到C:WindowsFonts文件夹中,在弹出的菜单中选择“在当前位置创建快捷方式”,这样就可以在系统的字体文件夹下建立字库文件的快捷方式了。当需要使用这些字库文件时,只要插入字库光盘,不用时取出就可以了。   十四、删去多余的Dll文件。在Window操作系统的System子目录里有许多的Dll文件,这些文件可能被许多文件共享,但有的却没有没有一个文件要使用它,也就是说这些文件没用了,为了不占用硬盘空间和提高启动运行速度,完全可以将其删除。   十五、“旁门左道”的办法。如采用系统悬挂,即将当前系统状态在关机后保存,下次开机后,系统会直接进入上次关机前的桌面,用这种方法,开机时间最快可以达到4-5秒钟,但不是所有的主板BIOS都支持的,设置起来也稍显麻烦。   打开注册表,展开到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSharedDlls子键,在右边的有许多Dll文件,如果数据为0,则可以判定该Dll文件没有程序共享,可以删掉它。   如果按以上的方法做了电脑启动速度仍不够快,除了升级硬件(CPU、内存、硬盘等)外,另一个好办法是重装系统,这样可以明显加快电脑启动速度! 其他回答 有一个“BootVis”程序(绿色软件),是微软公司出品的专为Windows XP操作系统设计的加速程序。使用这个很小的加速程序,您会感到Windows XP启动速度明显加快。 注意:这个最新版本适用于Windows XP SP1平台,支持Intel P4 HT技术。 简易用法:(这里引用的是我自己汉化的中文版-620K无法上传,你若是下载的该是英文的) 1. 启动BootVis,单击“工具”菜单的“选项”,在“标志路径”框中键入BootVis程序所在路径(例如:D:\XP加速程序\ ),单击“保存”按钮。 2. 在“跟踪”菜单中,单击“下一引导”,再单击“确定”按钮,此时BootVis程序会引导WinXP重新启动,并记录启动进程,生成相关的BIN文件。 3. 重新启动后,BootVis仍在运行中,请在“跟踪”菜单中,单击“优化系统”命令即可。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧