读取某个路径的TXT文件内容,然后照着读取出来的内容打出来,用汇编语言编写,急急急急!在线等 50
2个回答
展开全部
CODE SEGMENT
ASSUME CS:CODE
FILESTR DB 'c:\masm\file.asm',0
HANDLE DW 0
BUF DB 100 DUP(0)
ERRMSG1 DB 13,10,'file operation error 1! $'
ERRMSG2 DB 13,10,'file operation error 2! $'
ERRMSG3 DB 13,10,'file operation error 3! $'
START: PUSH CS
POP DS
PUSH CS
POP ES
MOV AH,3DH ; 打开文件
LEA DX,FILESTR
MOV AL,0
INT 21H
JC @ERROR1
MOV HANDLE,AX
@M0:
MOV AH,3FH ; 单字节读文件
MOV BX,HANDLE
MOV CX,1
LEA DX,BUF
INT 21H
JC @ERROR2 ;;;;;;
CMP AX,1
JNE @FILEEND
MOV AH,2
MOV DL,BUF[0]
INT 21H
JMP @M0
@FILEEND:
MOV AH,3EH ; 关闭文件
MOV BX,HANDLE
INT 21H
JC @ERROR3
@EXIT:
MOV AH,4CH
INT 21H
@ERROR1:
MOV AH,9
LEA DX,ERRMSG1
INT 21H
JMP @EXIT
@ERROR2:
MOV AH,9
LEA DX,ERRMSG2
INT 21H
JMP @EXIT
@ERROR3:
MOV AH,9
LEA DX,ERRMSG3
INT 21H
JMP @EXIT
CODE ENDS
END START
推荐于2018-01-02
展开全部
;需要事先在D:盘根目录下建立一个文件TEST.TXT
DSEG SEGMENT
;数据段:在此处添加程序所需的数据
PATHNM1 DB 'D:/TEST.TXT'
BUFFER1 DB 100 DUP (?)
DSEG ENDS
SSEG SEGMENT 'stack'
dw 100h dup(0)
SSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, ss:SSEG
START: mov ax, dseg
mov ds, ax
;打开文件TEST.TXT
MOV AH,3DH
LEA DX,PATHNM1
MOV AL,2
INT 21H
;读取文件内容,存入BUFFER1
LEA DX,BUFFER1
MOV BX,AX
MOV CX,100
MOV AH,3FH
INT 21H
;显示BUFFER1中的内容
MOV CX,AX
LEA SI,BUFFER1
NEXT:
MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP NEXT
;关闭文件
MOV AH,3EH
INT 21H
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
CSEG ENDS
END START
DSEG SEGMENT
;数据段:在此处添加程序所需的数据
PATHNM1 DB 'D:/TEST.TXT'
BUFFER1 DB 100 DUP (?)
DSEG ENDS
SSEG SEGMENT 'stack'
dw 100h dup(0)
SSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, ss:SSEG
START: mov ax, dseg
mov ds, ax
;打开文件TEST.TXT
MOV AH,3DH
LEA DX,PATHNM1
MOV AL,2
INT 21H
;读取文件内容,存入BUFFER1
LEA DX,BUFFER1
MOV BX,AX
MOV CX,100
MOV AH,3FH
INT 21H
;显示BUFFER1中的内容
MOV CX,AX
LEA SI,BUFFER1
NEXT:
MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP NEXT
;关闭文件
MOV AH,3EH
INT 21H
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
CSEG ENDS
END START
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询