📄 5.asm
字号:
STACK SEGMENT STACK
DW 128 DUP(?)
STACK ENDS
DATA SEGMENT
FILENAME DB 20,?,20 DUP(?)
FILE2 DB 20,?,20 DUP(?)
BUF1 DW 128 DUP('$')
BUF2 DW 128 DUP(?)
MENU DB 0DH,0AH,'1.READ FILE',0DH,0AH,'2.COPY FILE',0DH,0AH,'3.Delete FILE',0DH,0AH,'4.EXIT',0DH,0AH,'PLEASE ENTER THE NUMBER(1-4):$'
MES1 DB 0DH,0AH,'PLEASE READ FILE:',0DH,0AH,'$'
MES3 DB 0DH,0AH,'OK!THE FILE HAS BEEN DeleteD!$',0DH,0AH
MES4 DB 0DH,0AH,'PLEASE INPUT THE TARGET PATH AND NAME(*:\*.txt):$',0DH,0AH
MES5 DB 0DH,0AH,'SORRY!THE FILE IS NOT EXIST!PLEASE Create IT FIRST!$',0DH,0AH
MES6 DB 0DH,0AH,'PLEASE INPUT THE SOURCE PATH AND NAME:(*:\*.txt):$',0DH,0AH
MES7 DB 0DH,0AH,'PLEASE INPUT THE SOURCE FILE NAME:(*:\*.txt):$',0DH,0AH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
AGAIN:MOV AH,9
MOV DX,OFFSET MENU
INT 21H
MOV AH,1
INT 21H
N1: CMP AL,31H
JNZ N2
CALL A1
JMP AGAIN
N2: CMP AL,32H
JNZ N3
CALL A2
JMP AGAIN
N3: CMP AL,33H
JNZ N4
CALL A3
JMP AGAIN
N4: CMP AL,34H
JNZ AGAIN
MOV AH,4CH
INT 21H
A1 PROC NEAR
LEA DX,MES7
MOV AH,9
INT 21H
CALL INPUT
MOV DX,OFFSET FILENAME
ADD DX,2
MOV AH,3DH
MOV AL,0
INT 21H
JC FAULT1
MOV BX,AX
LEA DX,BUF1
MOV CX,200
MOV AH,3FH
INT 21H
MOV AH,3EH
INT 21H
LEA DX,MES1
MOV AH,9
INT 21H
LEA DX,BUF1
INT 21H
JMP RE1
FAULT1: CALL FAUL
RE1: RET
A1 ENDP
A2 PROC NEAR
LEA DX,MES6
MOV AH,9
INT 21H
CALL INPUT
MOV DX,OFFSET FILENAME
ADD DX,2
MOV AH,3DH
MOV AL,0
INT 21H
JC FAULT2
MOV BX,AX
LEA DX,BUF2
MOV CX,100
MOV AH,3FH
INT 21H
MOV AH,3EH
INT 21H
MOV DX,OFFSET MES4
MOV AH,9
INT 21H
CALL INPUT2
JMP RE2
FAULT2:CALL FAUL
RE2: RET
A2 ENDP
A3 PROC NEAR
LEA DX,MES7
MOV AH,9
INT 21H
CALL INPUT
MOV DX,OFFSET FILENAME
ADD DX,2
MOV AH,41H
INT 21H
JNC INFO
CALL FAUL
JMP RE3
INFO: MOV DX,OFFSET MES3
MOV AH,9
INT 21H
RE3: RET
A3 ENDP
INPUT PROC NEAR
LEA DX,FILENAME
MOV AH,0AH
INT 21H
LEA SI,FILENAME
MOV AL,[SI+1]
XOR AH,AH
ADD SI,2
ADD SI,AX
MOV BYTE PTR [SI],0
RET
INPUT ENDP
FAUL PROC NEAR
MOV DX,OFFSET MES5
MOV AH,9
INT 21H
RET
FAUL ENDP
INPUT2 PROC NEAR
MOV DX,OFFSET FILE2
MOV AH,0AH
INT 21H
LEA SI,FILE2
MOV AL,[SI+1]
XOR AH,AH
ADD SI,2
ADD SI,AX
MOV BYTE PTR [SI],0
LEA DX,FILE2
ADD DX,2
MOV AH,3CH
MOV CX,0
INT 21H
MOV AH,3DH
MOV AL,1
INT 21H
MOV BX,AX
MOV DX,OFFSET BUF2
MOV CX,100
MOV AH,40H
INT 21H
MOV AH,3EH
INT 21H
RET
INPUT2 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -