加快软盘操作速度的汇编程序源代码
2005-02-20 17:46
459 查看
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;功能:加快软盘的操作速度
;来源:《软件报》1995年合订本 60 页
;作者:成都 卢军(Purple Endurer修正了一个引起程序无法汇编的地方)
;原理:
;我们都知道软驱读写结束后并不可以立刻取出磁盘, 因为软驱灯未熄灭之前就取出磁盘
;将刮伤磁盘。在大量读写软盘的时侯等待驱动器灯灭是非常令人着急的。用过hd-copy的
;读者都可以体会到,hd-copy使用时当软驱一读写完毕驱动器灯叉立刻熄灭了,马上就可以
;取出磁盘,非常的方便。从这里我们也可以看到用软件的方法可能缩短驱动器灯熄灭的时
;间。
;在bios数据区的40:40地址处保存着一个表明驱动器马达接通时间的计数,每个时钟(1/18.2
;秒)节拍,计数减1。当计数为0时,马达停转,驱动器灯熄灭,计数又恢复为256,计数在0
;和256之间反复循环。因此我们可以缩短这个计数减速减为0的时间,从而使驱动器灯提早熄
;灭。pc及其兼容机的硬中断08H完成两个功能,它首先把这个计数减一,然后通知定时器的
;应用程序发出INT 1CH中断。因此在下面的这个程序中我们修改了 08H 中断,使每次 08H
;中断使计数减2。这样我们等待驱动器灯熄灭的时间可以缩短一半,加快了磁盘物速度。
;
;采用COM文件编写,并且采用INT 27H驻留。
;因此必须用EXE2BIN转化为COM文件后才可运行。
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PCOM SEGMENT BYTE PUBLIC
ASSUME CS: PCOM, DS: PCOM
ORG 100h
FASTOFF PROC FAR
START:
JMP SHORT INSTALL
OLD_INT_08H_ENTRY DD 00000000H ;保存原08H中断程序
FASTOFF ENDP
INT_08H_ENTRY PROC FAR
PUSH DS
PUSH AX ;保存现场
MOV AX, 40H
MOV DS, AX
CMP BYTE PTR DS:40H, 2 ;计数小于2则不再
JB EXIT ;使计数减一
DEC BYTE PTR DS: 40H
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;若将以上的3句改为 mov byte ptr ds:40h,-1
;这样这个数永远减不完,软驱灯岂不是永远不灭?
;这样谁还敢用软盘;-)
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
EXIT:
POP AX
POP DS
JMP CS: OLD_INT_08H_ENTRY ;调用原08H中断子程序
INSTALL:
LEA DX, COPYRIGHT ;打印程序信息
MOV AH, 09H
INT 21H
MOV AH, 35H
MOV AL, 08H
INT 21H ;取原08H中断向量
MOV WORD PTR OLD_INT_08H_ENTRY, BX
MOV WORD PTR OLD_INT_08H_ENTRY+2, ES
MOV DX, OFFSET INT_08H_ENTRY
MOV AH, 25H
MOV AL, 08H ;设置新的08H中断向量
INT 21H
LEA DX, FASTOFF+100 ;原文为:LEA DX, FINISH+100
INT 27H ;驻留退出
COPYRIGHT DB 'FASTOFF INSTALL. LUJUN.1995', 13, 10, '$'
INT_08H_ENTRY ENDP
PCOM ENDS
END START
;功能:加快软盘的操作速度
;来源:《软件报》1995年合订本 60 页
;作者:成都 卢军(Purple Endurer修正了一个引起程序无法汇编的地方)
;原理:
;我们都知道软驱读写结束后并不可以立刻取出磁盘, 因为软驱灯未熄灭之前就取出磁盘
;将刮伤磁盘。在大量读写软盘的时侯等待驱动器灯灭是非常令人着急的。用过hd-copy的
;读者都可以体会到,hd-copy使用时当软驱一读写完毕驱动器灯叉立刻熄灭了,马上就可以
;取出磁盘,非常的方便。从这里我们也可以看到用软件的方法可能缩短驱动器灯熄灭的时
;间。
;在bios数据区的40:40地址处保存着一个表明驱动器马达接通时间的计数,每个时钟(1/18.2
;秒)节拍,计数减1。当计数为0时,马达停转,驱动器灯熄灭,计数又恢复为256,计数在0
;和256之间反复循环。因此我们可以缩短这个计数减速减为0的时间,从而使驱动器灯提早熄
;灭。pc及其兼容机的硬中断08H完成两个功能,它首先把这个计数减一,然后通知定时器的
;应用程序发出INT 1CH中断。因此在下面的这个程序中我们修改了 08H 中断,使每次 08H
;中断使计数减2。这样我们等待驱动器灯熄灭的时间可以缩短一半,加快了磁盘物速度。
;
;采用COM文件编写,并且采用INT 27H驻留。
;因此必须用EXE2BIN转化为COM文件后才可运行。
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PCOM SEGMENT BYTE PUBLIC
ASSUME CS: PCOM, DS: PCOM
ORG 100h
FASTOFF PROC FAR
START:
JMP SHORT INSTALL
OLD_INT_08H_ENTRY DD 00000000H ;保存原08H中断程序
FASTOFF ENDP
INT_08H_ENTRY PROC FAR
PUSH DS
PUSH AX ;保存现场
MOV AX, 40H
MOV DS, AX
CMP BYTE PTR DS:40H, 2 ;计数小于2则不再
JB EXIT ;使计数减一
DEC BYTE PTR DS: 40H
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
;若将以上的3句改为 mov byte ptr ds:40h,-1
;这样这个数永远减不完,软驱灯岂不是永远不灭?
;这样谁还敢用软盘;-)
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
EXIT:
POP AX
POP DS
JMP CS: OLD_INT_08H_ENTRY ;调用原08H中断子程序
INSTALL:
LEA DX, COPYRIGHT ;打印程序信息
MOV AH, 09H
INT 21H
MOV AH, 35H
MOV AL, 08H
INT 21H ;取原08H中断向量
MOV WORD PTR OLD_INT_08H_ENTRY, BX
MOV WORD PTR OLD_INT_08H_ENTRY+2, ES
MOV DX, OFFSET INT_08H_ENTRY
MOV AH, 25H
MOV AL, 08H ;设置新的08H中断向量
INT 21H
LEA DX, FASTOFF+100 ;原文为:LEA DX, FINISH+100
INT 27H ;驻留退出
COPYRIGHT DB 'FASTOFF INSTALL. LUJUN.1995', 13, 10, '$'
INT_08H_ENTRY ENDP
PCOM ENDS
END START
相关文章推荐
- 比较数组下标操作与指针操作的速度(将程序转换成汇编程序)
- Win10预览版提供了完全桌面化、窗口化的操作方式 加快桌面应用的启动速度
- 用DBSQL类加快开发MySQL数据库程序的速度
- 初始化microsoft visual sourcesafe源代码管理提供程序时失败。您将无法使用此提供程序执行源代码管理操作
- F2812中程序从Flash中搬运到SRAM中运行加快速度
- 高性能MYsql读书笔记-加快alter table操作的速度
- 小谈汇编程序中对VGA显存直接操作
- 关于vs2008的提示:“初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败。您无法使用此提供程序执行源代码管理操作”
- IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题
- 使用内存映射文件加快文件操作速度
- mysql(一)加快ALTER TABLE操作的速度
- vs编译程序加快速度的方法
- 加快程序运行速度
- 用DBSQL类加快开发MySQL数据库程序的速度
- 汇编程序--文件操作
- 运用内存映射文件加快文件操作速度
- Python Numpy的一些操作可以极大的加快你的code运行速度
- 加快ALTER TABLE操作的速度
- MySQL加快ALTER TABLE操作的速度
- 初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败。您无法使用此提供程序执行源代码管理操作