加快软盘操作速度的汇编程序源代码

简介: 加快软盘操作速度的汇编程序源代码

;我们都知道软驱读写结束后并不可以立刻取出磁盘,  因为软驱灯未熄灭之前就取出磁盘

;将刮伤磁盘。在大量读写软盘的时侯等待驱动器灯灭是非常令人着急的。用过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


相关文章
显示按下的键的编码的汇编源代码
显示按下的键的编码的汇编源代码
【原创】报告CPU当前工作模式的汇编源代码
【原创】报告CPU当前工作模式的汇编源代码
|
3月前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
103 3
|
3月前
|
程序员 编译器 数据处理
汇编高手秘籍:解锁性能优化新境界,用汇编语言让你的程序飞起来!
【8月更文挑战第31天】汇编语言作为编程基石,其高效性能备受推崇。尽管现代软件开发更偏爱高级语言,但在性能要求极高的场景下,汇编优化仍不可或缺。本文通过示例代码介绍四种优化技巧:循环展开、寄存器分配、指令重排及SIMD指令使用,显著提升执行效率。同时强调分析性能瓶颈、测试优化效果及保持代码可读性的重要性,助力开发者在关键代码路径上实现性能突破。
75 0
8086 汇编笔记(五):包含多个段的程序
8086 汇编笔记(五):包含多个段的程序
|
6月前
|
编译器 开发者 C++
8086 汇编笔记(三):第一个程序
8086 汇编笔记(三):第一个程序
|
5月前
|
C语言
程序技术好文:部分ARM汇编指令解读
程序技术好文:部分ARM汇编指令解读
|
6月前
|
存储 编译器
C51汇编程序
C51汇编程序
58 5
|
编译器 C语言 数据安全/隐私保护
汇编语言和本地代码及通过编译器输出汇编语言的源代码
汇编语言和本地代码及通过编译器输出汇编语言的源代码
110 0
|
存储 Java C++
汇编语言、寄存器分类及程序计数器
汇编语言、寄存器分类及程序计数器
144 0