?? ear.asm
字號:
;********************************************
;文件名:EAR.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 _rhd ;14.聲明為公有標識符
_rhd proc ;15.子程序開始
push bp ;16.保護現場
mov bp,sp ;17.保存堆棧指針
push ds ;18.保護現場
push si ;19.保護現場
push di ;20.保護現場
;21.
mov ah,42h ;22.磁盤讀
mov dl,80h ;23.第一硬盤
mov di,offset buff.blocknum ;24.取結構變量成員地址
mov bx,[bp+10] ;25.取第一個字節參數
mov [di],bx ;26.存入變量成員第一個字
mov bx,[bp+8] ;27.取第二個字節參數
mov [di+1],bx ;28.存入變量成員第二個字
mov bx,[bp+6] ;29.取第三個字節參數
mov [di+2],bx ;30.存入變量成員第三個字
mov bx,[bp+4] ;31.取第四個字節參數
mov [di+3],bx ;32.存入變量成員第四個字
mov si,offset buff ;33.取數據包地址
int 13h ;34.調用中斷
;35.
mov dx,[bp+12] ;36.取文件名
mov cx,0 ;37.
mov ah,3ch ;38.建立文件
int 21h ;39.
mov bx,ax ;40.保存文件號
lds dx,buff.bufferaddr ;41.取數據緩沖區地址
mov cx,count ;42.取字節數
mov ah,40h ;43.寫文件
int 21h ;44.
mov ah,3eh ;45.關閉文件
int 21h ;46.
pop di ;47.恢復現場
pop si ;48.恢復現場
pop ds ;49.恢復現場
pop bp ;50.恢復現場
ret ;51.子程序返回
_rhd endp ;52.子程序結束
end ;53.程序結束
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -