⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eaw.asm

📁 硬盘修复参考源码。其中包括对扇区读写剪切等操作的具体代码。
💻 ASM
字号:
;********************************************
;文件名:EAW.ASM
;功能:将文件数据写入扇区
;********************************************
count=512                             ;1.
disk struc                            ;2.定义结构
packetsize db 16                      ;3.
reserved db 0                         ;4.
blockcount dw 1                       ;5.
bufferaddr dd 200h                    ;6.
blocknum dq ?                         ;7.
disk ends                             ;8.
                                      ;9.
.model small                          ;10.定义编译模式
.data                                 ;11.定义数据段
buff disk <>                          ;12.将结构地址赋给变量
.code                                 ;13.定义代码段
public _whd                           ;14.公有声明
_whd proc                             ;15.子程序开始
        push bp                       ;16.保护现场
        mov bp,sp                     ;17.保存指针
        push ds                       ;18.保护现场
        push si                       ;19.保护现场
        push di                       ;20.保护现场
        mov si,offset buff            ;21.取变量地址
        push ds                       ;22.保护段址
        mov dx,[bp+12]                ;23.取文件名
        mov al,0                      ;24.
        mov ah,3dh                    ;25.打开文件
        int 21h                       ;26.
        mov bx,ax                     ;27.保存文件号
        lds dx,buff.bufferaddr        ;28.取缓冲区地址
        mov cx,count                  ;29.取字节数
        mov ah,3fh                    ;30.读文件
        int 21h                       ;31.
        mov ah,3eh                    ;32.关闭文件
        int 21h                       ;33.
                                      ;34.
        pop ds                        ;35.恢复段址
        mov al,0                      ;36.
        mov ah,43h                    ;37.设置入口参数
        mov dl,80h                    ;38.设置入口参数
        mov di,offset buff.blocknum   ;39.取存放扇区数的结构成员地址
        mov bx,[bp+10]                ;40.取一个字
        mov [di],bx                   ;41.存入结构成员中
        mov bx,[bp+8]                 ;42.同上
        mov [di+1],bx                 ;43.同上
        mov bx,[bp+6]                 ;44.同上
        mov [di+2],bx                 ;45.同上
        mov bx,[bp+4]                 ;46.同上
        mov [di+3],bx                 ;47.同上
        int 13h                       ;48.调用中断
        pop di                        ;49.恢复现场
        pop si                        ;50.同上
        pop ds                        ;51.同上
        pop bp                        ;52.同上
        ret                           ;53.子程序返回
_whd    endp                          ;54.
        end                           ;55.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -