BIOS:
l 13 ( );
l 40 ( ).
, AH, , .
l DOS 21H.
21 ( AH), MS DOS ( FB) , MS DOS 2.0 ( ASCIIZ).
21H DOS, .
ASCIIZ-, , ( ).
DOS 21.
l AH = 3Ch : ASCIIZ-, , ; - ASCIIZ- DS:DX, CX ; AX .
l AH = 3Dh : - ASCIIZ- DS:DX, AL (AL = 0 , AL = 1 , AL = 2 , ); AX .
l AH = 3Eh ( ): X.
l AH = 3Fh : BX , CX , DS:DX - ( ), ; AX.
l AH = 40h : BX , CX , DS:DX - ( ), ; AX .
l AH = 41h : DS:DX - ASCIIZ- .
l AH = 42h : BX , AL (AL = 0 , AL = 1 , AL = 2 ), CX:DX ( 0); DX:AX .
l AH = 43h : DS:DX ASCIIZ- , CX , AL 1 ( AL 0, , CX).
|
|
l AH = 56h : DS:DX ASCIIZ- , ES:DI ASCIIZ- .
FL CF 1; AX.
ASCIIZ-:
path db C:filename.ext, 0; ASCIIZ-
buf db 1000 dup(?);
handle dw?;
size dw?;
l :
;
mov DX, offset path; ASCIIZ- DX
mov AL, 0;
mov AH, 3DH;
int 21H;
jc open_error; CF=1,
mov handle, AX;
l :
mov AH, 42H;
mov AL, 2;
mov BX, handle;
mov CX, 0; = 0
mov DX, 0; = 0
int 21H;
jc point_error1; CF=1,
mov size, AX;
l :
mov AH, 42H;
mov AL, 0;
mov CX, 0; = 0
mov DX, 0; = 0
int 21H;
jc point_error2; CF=1,
l :
mov AH, 3FH;
mov BX, handle;
mov CX, size;
mov DX, offset buf;
int 21H;
jc read_error; CF=1,
l :
mov BX, handle;
mov AH, 3EH;
int 21H;
jc close_erro r; CF=1,
:
l .
; ()
mov DX, offset path
mov CX, 0
mov AH, 3CH
int 21H
jc open_error
mov han, AX
; 500
mov AH, 40H
mov BX, handle
mov CX, 500
mov DX, offset buf
int 21H
jc write_error
l .
;
mov DX, offset path
mov AL, 1
mov AH, 3DH
int 21H
jc open_error
mov handle, AX
;
mov BX, AX
mov CX, 0
mov DX, 0
mov AL, 2
mov AH, 42H
int 21H
jc point_error
; 300
mov AH, 40H
mov BX, handle
mov CX, 300
mov DX, offset buf
int 21H
jc write_error