📄 eaw.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 + -