DISP MACRO X, LENGTH, COLOR
MOV AX,1301H
MOV BX,COLOR
MOV CX,LENGTH
MOV DH,YY
MOV DL,X
MOV BP,ADDR
INT 10H
ENDM
;------------------------------------------------------
DATA SEGMENT
L0 DB ' MENU '
L1 DB '==============='
L2 DB '| EXAM_1 |'
L3 DB '| EXAM_2 |'
L4 DB '| EXAM_3 |'
L5 DB '| RETURN |'
L6 DB '==============='
LL EQU $-L6
XX EQU (80- LL)/2
YY DB ?
NN DW 1
TAB DW ?,L2,L3,L4,L5
ADDR DW ?
DATA ENDS
;------------------------------------------------------
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,3
INT 10H
MOV YY,8
MOV ADDR,OFFSET L0
LAST2: DISP XX,LL,0FH
ADD ADDR,LL
INC YY
CMP YY,15
JL LAST2
MOV NN, 1
CALL COMPUTE
DISP XX+3,LL-6,51H
SCAN: MOV AH, 1
INT 16H
JZ SCAN
MOV AH,0
INT 16H
CMP AH,80
JE DOWN
CMP AH,72
JE UP
CMP AL,0DH
JE EXIT
JMP SCAN
DOWN: CMP NN,4
JE SCAN
CALL COMPUTE
DISP XX+3,LL-6,0FH
INC NN
CALL COMPUTE
DISP XX+3,LL-6,51H
JMP SCAN
UP: CMP NN,1
JE SCAN
CALL COMPUTE
DISP XX+3,LL-6,0FH
DEC NN
CALL COMPUTE
DISP XX+3,LL-6,51H
JMP SCAN
EXIT: MOV AL,BYTE PTR NN
MOV AH,4CH
INT 21H
COMPUTE PROC
MOV DI,NN
ADD DI,DI
MOV AX,TAB[DI]
ADD AX,3
MOV ADDR,AX
MOV AL,BYTE PTR NN
ADD AL,9
MOV YY,AL
RET
COMPUTE ENDP
CODE ENDS
END BEG
最后一行后面再加一个换行试试
没有结束