?? 4_8_3.asm
字號:
NAME SYCX2_8_3
STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP(0)
STACK ENDS
DATA SEGMENT
FILEN DB 21 ; 文件名允許長度為20
DB ? ; 實際文件名長度
DB 20 DUP(?) ; 存新文件名
ERROP DB 'Open file error!',0AH,0DH,'$'
ERRWR DB 'Write file error!',0AH,0DH,'$'
ERRRD DB 'Read file error!',0AH,0DH,'$'
ERRMV DB 'Move file pointer error!',0AH,0DH,'$'
INMSG1 DB 'Please input filename:',0AH,0DH,'$'
INMSG2 DB 'Please input char:',0AH,0DH,'$'
BUFIN DB 0F00H DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
Start: MOV AX, DATA ; 裝填DS段寄存器
MOV DS, AX
MOV AX, STACK ; 裝填SS段寄存器
MOV SS, AX
CALL OPFILE ; DX指向存放要打開的文件名字符串
MOV AL, 0 ; 以只讀方式打開
MOV AH, 3DH ; 打開文件
INT 21H
JC OPERR ; 打開出錯,轉OPERR
MOV BX, AX ; 轉存文件號
MOV SI, 0 ; 置緩沖區相對指針
MOV DX, OFFSET BUFIN ; 置緩沖區首地址
MOV CX, 0F000H ; 設讀出字節數
MOV AH, 3FH ; 將文件內容讀出到緩沖區BUFIN,
INT 21H ; 實際讀出字節數在AX中
JC RDERR ; 讀出錯,轉RDERR
MOV DI, AX ; 保存實際讀出字節數在DI中
MOV AH, 3EH ; 關閉文件
INT 21H
;
CALL OPFILE ; DX指向存放要打開的另一文件名字符串
MOV AL, 2 ; 以讀寫方式打開
MOV AH, 3DH ; 打開文件
INT 21H
JC OPERR ; 打開出錯,轉OPERR
;
MOV BX, AX ; 轉存文件號
MOV CX, 0
MOV DX, 0 ; CX:DX表示移動讀寫指針的位移量,
; 設為0
MOV AL, 2 ; 從文件尾開始移動CX:DX表示的位移量
MOV AH, 42H ; 移動指針到文件尾
INT 21H
JC MVERR ; 移動指針出錯,轉MVERR
;
MOV DX, OFFSET BUFIN ; 置緩沖區首地址
MOV CX, DI ; 實際讀出字節數放CX中
MOV AH, 40H ; 寫文件
INT 21H
JC WRERR ; 寫出錯,轉WRERR
JMP CLFILE ; 轉關閉文件
;
OPERR: LEA DX, ERROP ; 顯示打開文件出錯的信息
JMP DISP1
RDERR: LEA DX, ERRRD ; 顯示讀文件出錯的信息
JMP DISP1
WRERR: LEA DX, ERRWR ; 顯示寫文件出錯的信息
JMP DISP1
MVERR: LEA DX, ERRMV ; 顯示移動文件指針出錯的信息
DISP1: MOV AH, 09H
INT 21H
JMP ENDO
;
CLFILE: MOV AH, 3EH ; 關閉文件
INT 21H
ENDO: MOV AH, 4CH
INT 21H
; 子程序OPFILE功能:準備打開用戶指定的文件
; 出口:DX指向存放要打開的文件名字符串
OPFILE PROC ;
PUSH AX
PUSH BX
LEA DX, INMSG1 ; 顯示要求輸入打開的文件名的信息
MOV AH, 09H
INT 21H
LEA DX, FILEN ; 輸入文件名
MOV AH, 0AH
INT 21H
;
MOV BL, FILEN+1 ; 取文件名長度
MOV BH, 0
MOV FILEN[BX+2],BYTE PTR 0 ; 文件名末尾添加0
MOV DL, 0DH ; 輸出回車
MOV AH, 2
INT 21H
MOV DL, 0AH ; 輸出換行,準備顯示后面內容
MOV AH, 2
INT 21H
LEA DX, FILEN+2 ; 指向文件名
POP BX
POP AX
RET
OPFILE ENDP
;
CODE ENDS
END Start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -