📄 text.asm
字号:
CALL BACK_DISP
JMP GET_CHAR
MENU_N: ;定义各个菜单项
NEW_W 0,65H,5,1,5,8
LOCAL_C 0,5,0
OUTPUT_S FILE5
NEW_W 0,15H,1,1,1,8
LOCAL_C 0,1,0
OUTPUT_S FILE1
READ_C
CMP AH,48H
JE MENU_N
CMP AL,0DH
JE NEW_1
CMP AH,50H
JE MENU_O
JMP MENU_HIDE
MENU_N1:JMP MENU_N
MENU_O:
NEW_W 0,65H,1,1,1,8
LOCAL_C 0,1,0
OUTPUT_S FILE1
NEW_W 0,15H,2,1,2,8
LOCAL_C 0,2,0
OUTPUT_S FILE2
READ_C
CMP AH,48H
JE MENU_O
CMP AL,0DH
JE OPEN_1
CMP AH,50H
JE MENU_S
JMP MENU_HIDE
NEW_1: JMP NEW_2
MENU_S:
NEW_W 0,65H,2,1,2,8
LOCAL_C 0,2,0
OUTPUT_S FILE2
NEW_W 0,15H,3,1,3,8
LOCAL_C 0,3,0
OUTPUT_S FILE3
READ_C
CMP AL,0DH
JE SAVE_1
CMP AH,48H
JE MENU_S
CMP AH,50H
JE MENU_A
JMP MENU_HIDE
OPEN_1: JMP OPEN_2
MENU_N2:JMP MENU_N
MENU_A:
NEW_W 0,65H,3,1,3,8
LOCAL_C 0,3,0
OUTPUT_S FILE3
NEW_W 0,15H,4,1,4,8
LOCAL_C 0,4,0
OUTPUT_S FILE4
READ_C
CMP AH,1CH
JE SAVE_2
CMP AH,48H
JE MENU_A
CMP AH,50H
JE MENU_E
JMP MENU_HIDE
manu_n2:JMP MENU_N2
NEW_2: JMP NEW
SAVE_1: CALL SAVE
SAVE_2: CALL SAVE_AS
MENU_E:
NEW_W 0,65H,4,1,4,8
LOCAL_C 0,4,0
OUTPUT_S FILE4
NEW_W 0,15H,5,1,5,8
LOCAL_C 0,5,0
OUTPUT_S FILE5
READ_C
CMP AH,50H
JE manu_n2
CMP AH,48H
JE MENU_E
CMP AH,1CH
JE EXIT
JMP MENU_HIDE
EXIT:
CALL BACK_DISP
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60
LOCAL_C 0,15,9
OUTPUT_S INFO4
INPUT_C
CMP AL,79H
JNZ QQ
CALL QUIT1
QQ: CMP AL,6EH
JE QUIT
QUIT: NEW_W 0,54H,0,0,24,79
LOCAL_C 0,0,0
END_P
RET
MENU_SHOW ENDP
NEW PROC NEAR ;新建文件
GET_C
PUSH DX
CALL BACK_DISP
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60,
LOCAL_C 0,15,9
OUTPUT_S INFO1
CMP AL,0DH
MOV BX,0
A1:
INPUT_C
CMP AL,0DH
JE A2
MOV PPA[BX],AL
INC BX
JMP A1
A2:
NEW_W 0,3EH,15,9,17,61
POP DX
LOCAL_C 0,DH,DL
NEW_F PPA,00
MOV HAND,AX
CLOSE_F AX
NEW_W 0,3EH,1,0,23,79
LOCAL_C 0,1,0
JMP GET_CHAR
NEW ENDP
OPEN_2: JMP OPEN
OPEN PROC NEAR ;打开文件
CALL BACK_DISP
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60
LOCAL_C 0,15,9
OUTPUT_S INFO3
MOV BX,0
A5:
INPUT_C
CMP AL,13
JE A6
MOV PPA[BX],AL
INC BX
JMP A5
A6:
NEW_W 0,3EH,1,0,23,79
MOV AH,3DH ;打开文件
LEA DX,PPA ;DX=ASCII码串首地址
MOV AL,0 ;AL=0读、1写、2读/写
INT 21H
MOV HAND,AX
MOV AH,3FH ;读文件
LEA DX,BUF ;DX=数据缓冲区首地址
MOV BX,HAND ;BX=文件句柄号
MOV CX,2000 ;CX=读字节数
INT 21H
NEW_W 0,3EH,1,23,1,79
LOCAL_C 0,1,0
MOV CX,2000
SUB BX,BX
REP:
OUTPUT_C BUF[BX]
INC BX
LOOP REP
CLOSE_F HAND
LOCAL_C 0,1,0
MOV CX,10
MOV BX,0
C3:
MOV BL,0
MOV PPA[BX],BL
LOOP C3
JMP GET_CHAR
OPEN ENDP
SAVE PROC NEAR ;保存文件
GET_C
PUSH DX
NEW_W 0,3EH,1,0,6,10
CALL BACK_DISP
MOV AH,PPA
CMP AH,21H
JL B1
JMP B2
B1:
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60,
LOCAL_C 0,15,9
OUTPUT_S INFO2
MOV BX,0
C1:
INPUT_C
CMP AL,0DH
JE C2
MOV PPA[BX],AL
INC BX
JMP C1
C2:
NEW_W 0,3EH,1,0,23,79
POP DX
LOCAL_C 0,DH,DL
B2: NEW_F PPA,00
MOV HAND,AX
WRITE_F BUF,HAND,2000
CLOSE_F HAND
CALL BACK_DISP
JMP GET_CHAR
SAVE ENDP
SAVE_AS PROC NEAR ;另存为文件
NEW_W 0,3EH,1,0,6,10
CALL BACK_DISP
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60,
LOCAL_C 0,15,9
OUTPUT_S INFO2
MOV BX,0
A3:
INPUT_C
CMP AL,0DH
JE A4
MOV PPA[BX],AL
INC BX
JMP A3
A4:
GET_C
PUSH DX
NEW_W 0,3EH,1,0,23,79
CALL BACK_DISP
POP DX
LOCAL_C 0,DH,DL
NEW_F PPA,00
MOV HAND,AX
WRITE_F BUF,HAND,2000
CLOSE_F HAND
CALL BACK_DISP
JMP GET_CHAR
SAVE_AS ENDP
SAVE_DISP PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DS
MOV AX,0002H ;鼠标功能调用,光标消隐
INT 33H
MOV BX,0D
MOV CX,2800D
LOOP1:
MOV AX,0B800H
MOV DS,AX
MOV DL,DS:[BX]
MOV AX,DATA
MOV DS,AX
MOV BAKE[BX],DL
INC BX
LOOP LOOP1
MOV AX,0001H ;鼠标功能调用,显示鼠标
INT 33H
POP DS
POP DX
POP CX
POP BX
POP AX
SAVE_DISP ENDP
BACK_DISP PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DS
MOV BX,0D
MOV CX,2800D
LOOP2:
MOV AX,DATA
MOV DS,AX
MOV DL,BAKE[BX]
MOV AX,0B800H
MOV DS,AX
MOV DS:[BX],DL
INC BX
LOOP LOOP2
POP DS
POP DX
POP CX
POP BX
POP AX
RET
BACK_DISP ENDP
QUIT1 PROC NEAR ;退出
CALL BACK_DISP
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60,
LOCAL_C 0,15,9
OUTPUT_S INFO2
MOV BX,0
D1:
INPUT_C
CMP AL,0DH
JE D2
MOV PPA[BX],AL
INC BX
JMP D1
D2:
NEW_W 0,54H,15,10,17,61
NEW_W 0,24H,14,9,16,60
CALL BACK_DISP
NEW_F PPA,00
MOV HAND,AX
WRITE_F BUF,HAND,2000
CLOSE_F HAND
CALL BACK_DISP
NEW_W 0,54H,0,0,24,79
END_P
RET
QUIT1 ENDP
EDIT ENDP
CODE ENDS
END BEGIN ;结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -