您的位置:首页 > 其它

汇编语言: txt文件操作

2017-06-05 19:49 253 查看
默认目录下存在 test.txt

;写入

data segment
file db 'test.txt',0
buf db 100,?,100 dup(?)
fh dw ?

error_msg db 0dh,0ah,'error!','$'
writer_msg db 0dh,0ah,'open file !input text:',0ah,'$'
success_msg db 0dh,0ah,'done!','$'
data ends

stack segment stack
dw 20h dup(?)
top label word
stack ends

code segment
assume ds:data,cs:code,ss:stack
p proc far

mov ax,data
mov ds,ax

mov ax,stack
mov ss,ax
lea sp,top

lea dx,file
mov cx,0

mov ah,3ch
int 21h

jc error
writer:
mov fh,ax;save the code of file
lea dx,writer_msg
mov ah,09h
int 21h

lea dx,buf
mov ah,0ah
int 21h

lea si,buf
inc si

xor ch,ch
mov cl,[si];1

inc si
mov dx,si;2
mov bx,fh;3

mov ah,40h
int 21h
jc error

success:
lea dx,success_msg
mov ah,09h
int 21h
jmp exit

error:
mov cx,16
mov bx,ax
l1: rol bx,1
mov dl,bl
and dl,1
add dl,30h
mov ah,02h
int 21h
loop l1

lea dx,error
mov ah,09h
int 21h
exit:
mov ah,4ch
int 21h

p endp
code ends
end p


; 读取

data segment

file db 'test.txt',0
buf db 100 dup(?)
fh dw ?

error_msg db 0dh,0ah,'error!','$'
success_msg db 0dh,0ah,'done!','$'
data ends

stack segment stack
dw 20h dup(?)
top label word
stack ends

code segment
assume ds:data,cs:code,ss:stack
p proc far

mov ax,data
mov ds,ax

mov ax,stack
mov ss,ax
lea sp,top

;open file
lea dx,file
mov al,0
mov ah,3dh
int 21h
jc error
mov fh,ax
;read file
lea dx,buf
mov cx,100
mov bx,fh

mov ah,3fh
int 21h
jc error

mov cx,ax
lea si,buf

l1: mov dl,[si]
inc si
mov ah,02h
int 21h
loop l1

jmp exit

error:
lea dx,error_msg
mov ah,09h
int 21h

exit:
mov ah,4ch
int 2
ab35
1h

p endp
code ends
end p


;读取一个文件并复制到另一个文件txt

data segment

file db 'a\test.txt',0
buf db 100 dup(?)
fh dw ?

copyfile db 'a\copytext.txt',0
copyfh dw ?

error_msg db 0dh,0ah,'error!','$'
success_msg db 0dh,0ah,'done!','$'
data ends

stack segment stack
dw 20h dup(?)
top label word
stack ends

code segment
assume ds:data,cs:code,ss:stack
p proc far

mov ax,data
mov ds,ax

mov ax,stack
mov ss,ax
lea sp,top

;open file
lea dx,file
mov al,0
mov ah,3dh
int 21h
jc error
mov fh,ax
;read file
lea dx,buf
mov cx,100
mov bx,fh

mov ah,3fh
int 21h
jc error

;show the read content
mov cx,ax
push cx;push length in stack
lea si,buf
l1: mov dl,[si]
inc si
mov ah,02h
int 21h
loop l1
;create new file 2
lea dx,copyfile
mov cx,0
mov ah,3ch
int 21h
jc error
mov copyfh,ax

;write to copyfile
lea dx,buf
mov bx,copyfh
pop cx
mov ah,40h
int 21h
jc error

jmp exit

error:
lea dx,error_msg
mov ah,09h
int 21h

exit:
mov ah,4ch
int 21h

p endp
code ends
end p
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: