📄 huibian.asm
字号:
INCLUDE filefuc.mac
EXTRN OPENFILES:far ;调用子模块的声明
EXTRN SEARCH:FAR
EXTRN QIUHE:FAR
EXTRN PAIXU:FAR
EXTRN CLSPS:FAR
EXTRN INPUT:FAR
STSG SEGMENT STACK 'S'
DW 32 DUP(?)
STSG ENDS
DATAS SEGMENT;数据段
PAGES DW ?
sign DB 'A'
MSG1 DB 'editor-1','$'
MSG2 DB 'search-2','$'
MSG3 DB 'refu-3','$'
MSG4 DB 'nextpa-4','$'
MSG5 DB 'lastpa-5 ','$'
MSG6 DB 'select-6 ','$'
MSG7 DB 'delete-7 ','$'
MSG8 DB 'e-8 ','$'
MSG9 DB 'THE INSTRUCTION IS :','$'
MSG1S DB 'STUDENTNU.','$'
MSG2S DB 'NAME','$'
MSG3S DB 'COURSE1','$'
MSG4S DB 'COURSE2','$'
MSG5S DB 'COURSE3','$'
MSG6S DB 'COURSE4','$'
MSG7S DB 'SUM','$'
MSG8S DB 'LIST','$'
JMP_TAB DW EDITOR
DW SEARCHS
DW REFU
DW NEXTPAGE
DW LASTPAGE
DW SELECT
DW DELETE
DW QUIT
DATAS ENDS
CODE1 SEGMENT;主
MAIN PROC FAR
ASSUME CS:CODE1,DS:DATAS,SS:STSG
MOV AH,0
MOV AL,3
INT 10H
CLRCRN
MOV AH,6
MOV BH,70H
MOV AL,0
MOV CH,0
MOV CL,0
MOV DH,0
MOV DL,79;此处输入代码段代码
INT 10H
MOV AH,6
MOV BH,20H
MOV AL,0
MOV CH,1
MOV CL,0
MOV DH,1
MOV DL,79;此处输入代码段代码
INT 10H
MOV AH,6
MOV BH,70H
MOV AL,0
MOV CH,23
MOV CL,0
MOV DH,24
MOV DL,79;此处输入代码段代码
INT 10H
mov AX,DATAS
mov DS,AX
CALL FAR PTR MENUDIS;调用子程序显示主菜单,及序号
MOV PAGES,0
MOV BX,PAGES
CALL FAR PTR OPENFILES;调用子程序打开文件并显示
MOV DL,0;初始化列号
MOV DH,2;初始化行号
MOV BH,0
CURSORS:;显示行网格线
MOV AH,2
INT 10H
PUSH AX
PUSH BX
PUSH CX
MOV AH,9
MOV AL,205
MOV BL,0EH
MOV CX,1
INT 10H
INC DL
CMP DL,80
JL CURSORS
MOV DL,0
INC DH
INC DH
CMP DH,23
JL CURSORS
MOV DL,1
MOV DH,0
MOV BH,0
VCURSOR:;显示列网格线
MOV AH,2
INT 10H
PUSH AX
PUSH BX
PUSH CX
MOV AH,9
MOV AL,186
MOV BL,0EH
MOV CX,1
INT 10H
INC DH
CMP DH,23
JL VCURSOR
MOV DH,0
CMP DL,1
JZ NEXTSS
ADD DL,10
JMP NEXTSSS
NEXTSS: ADD DL,13
NEXTSSS:
CMP DL,80
JL VCURSOR
RDKB:
PUTS 24,0,MSG9,7DH
mov dh,24
mov dl,21
CURSOR
MOV AH,1
INT 21H;等待输入命令
CMP AL,31H
JB BEEP
CMP AL,38H
JA BEEP
AND AL,0FH
XOR AH,AH
DEC AX
ADD AX,AX
LEA BX,JMP_TAB
ADD BX,AX
JMP [BX];跳转到对应菜单项
BEEP:
MOV AH,14
MOV AL,7
MOV BH,0
INT 10H
JMP SHORT RDKB
EDITOR:
MOV BX,PAGES
PUTS 0,2,MSG1,7CH
CALL FAR PTR INPUT
CALL FAR PTR MENUDIS
JMP RDKB
SEARCHS:
PUTS 0,15,MSG2,7CH
CALL FAR PTR SEARCH
CALL FAR PTR MENUDIS
JMP RDKB
REFU:
PUTS 0,25,MSG3,7CH
CALL FAR PTR QIUHE
CALL FAR PTR PAIXU
CALL FAR PTR CLSPS
MOV BX,PAGES
CALL FAR PTR OPENFILES
CALL FAR PTR MENUDIS
JMP RDKB
NEXTPAGE:
PUTS 0,35,MSG4,7CH
CMP PAGES,2
JZ RDKB
CALL FAR PTR CLSPS
INC PAGES
MOV BX,PAGES
CALL FAR PTR OPENFILES
CALL FAR PTR MENUDIS
JMP RDKB
LASTPAGE:
PUTS 0,45,MSG5,7CH
CMP PAGES,0
JZ RDKB
CALL FAR PTR CLSPS
DEC PAGES
MOV BX,PAGES
CALL FAR PTR OPENFILES
CALL FAR PTR MENUDIS
JMP RDKB
SELECT:
NOP
JMP RDKB
DELETE:
NOP
JMP RDKB
QUIT:
PUTS 0,75,MSG8,7CH
JMP REPEATESS
REPEATESS: MOV AH,4CH
INT 21H
MAIN ENDP
CODE1 ENDS
CODE2 SEGMENT
ASSUME CS:CODE2
MENUDIS PROC FAR
PUSHREG
MOV DH,0;显示主菜单
MOV DL,2
PUTS DH,DL,MSG1,7FH;显示编辑菜单提示
ADD DL,13
PUTS DH,DL,MSG2,7FH;显示查询菜单提示
ADD DL,10
PUTS DH,DL,MSG3,7FH;显示刷新菜单提示
ADD DL,10
PUTS DH,DL,MSG4,7FH;显示编辑菜单提示
ADD DL,10
PUTS DH,DL,MSG5,7FH;显示下一页菜单提示
ADD DL,10
PUTS DH,DL,MSG6,7FH;显示上一页菜单提示
ADD DL,10
PUTS DH,DL,MSG7,7FH;显示选定菜单提示
ADD DL,10
PUTS DH,DL,MSG8,7FH;显示退出菜单提示
MOV DL,0
MOV DH,3
MOV sign,'A'
NUM1:
PUTC DH,DL,sign,1EH;显示各条记录的序列
ADD DH,2
INC sign
CMP DH,23
JL NUM1
MOV DL,2
MOV DH,1
PUTS DH,DL,MSG1S,2EH;显示学号提示
ADD DL,13
PUTS DH,DL,MSG2S,2EH;显示姓名提示
ADD DL,10
PUTS DH,DL,MSG3S,2EH;显示成绩提示
ADD DL,10
PUTS DH,DL,MSG4S,2EH;显示成绩提示
ADD DL,10
PUTS DH,DL,MSG5S,2EH;显示成绩提示
ADD DL,10
PUTS DH,DL,MSG6S,2EH;显示成绩提示
ADD DL,10
PUTS DH,DL,MSG7S,2EH;显示部分提示
ADD DL,10
PUTS DH,DL,MSG8S,2EH;显示名次提示
POPREG
RET
MENUDIS ENDP
CODE2 ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -