;读写文件,句柄方式
data segment
assume ds:data
fname1 db 'e:/1.txt',0
fname2 db 'e:/1.bak',0
buffer db 32 dup(0)
handle1 dw ?
handle2 dw ?
msg1 db'error!!!',0dh,0ah,24h
msg2 db'ok...',0dh,0ah,24h
data ends
code segment
assume cs:code
main proc far
mov ax,data
mov ds,ax
mov dx,offset fname1
mov ax,3d00h
int 21h
jc abord
mov handle1,ax
mov dx,offset fname2
mov ah,3ch
mov cx,0
int 21h
jc abord
mov handle2,ax
dup_loop:
mov ah,3fh
mov cx,32
mov dx,offset buffer
mov bx,handle1
int 21h
jc abord
mov cx,ax
mov ah,40h
mov bx,handle2
int 21h
jc abord
cmp cx,32
jz dup_loop
mov ah,3eh
mov bx,handle1
int 21h
mov bx, handle2
int 21h
mov dx, offset msg2
mov ah,09h
int 21h
jmp exit
abord:
mov dx,offset msg1
mov ah,09h
int 21h
exit:
mov ah,4ch
int 21h
main endp
code ends
end main