STACK SEGMENT STACK DB 50 DUP(0) STACK ENDS DATA SEGMENT WORD1 DB 300 DUP(0) WORD2 DB 20 DUP(0) MSG0 DB 'THE NUMBER OF WORD YOU HAVE REMEBERED : $' MSG1 DB 'THE NUMBER OF WORD YOU HAVE NOT REMEBER :$ ' MSG2 DB 'PLEASE INPUT WORDS,END WITH END.PRESS ENTER TO END INPUT AND START TEST!',0AH,0DH,'$' MSG3 DB 'THE WORD YOU HAVE NOT REMEBERED:$' MSG4 DB 'THE SOURCE WORD:$' STR1 DB 0AH,'PERSS K OR U TO JUDGE IF YOU KNOW THIS WORD!YOU CAN PRESS N OR L TO DISPLAY THE NEXT WORD!',0AH,'$' STR2 DB 0AH,'PERSS N OR L TO CHOOSE THE NEXT WORD,PERSS O IS JUMP OUT THE GAME!',0AH,'$' RATE0 DB 'THE RIGHT RATE IS:$' DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA, SS:STACK START: MOV AX,DATA ;取数据段地址 MOV DS,AX MOV CX,0 MOV DI,OFFSET WORD2 PUSH DI MOV DX,OFFSET MSG2 ;调用中断显示字符串 MOV AH,09H INT 21H LEA SI,WORD1 INPUT: INC SI MOV AH,01H ;输入单词 MOV DL,0FFH INT 21H MOV [SI],AL CMP AL,0DH JZ FIRST JMP INPUT FIRST: CALL CLEAR LEA BX ,WORD1 ;准备显示第一个单词 SHOW: MOV DL,[BX+1] CMP DL ,20H ;判断是否显示完一个单词(是否空格) JZ KU CMP DL,0DH ;判断是否测试完毕 JZ HP MOV AH,02H INT 21H INC BX JMP SHOW HP: JMP STOP KU: MOV DX,OFFSET STR1 MOV AH,09H INT 21H MOV AH,07H ;从键盘输入字符选择是否认识或者直接选择显示哪个单词 INT 21H CMP AL,'K' JZ KNOW CMP AL,'U' JZ UNKNOW CMP AL,'N' JZ NEXT CMP AL,'L' JZ LAST JMP KU NL: MOV DX,OFFSET STR2 MOV AH,09H INT 21H MOV AH,07H ;从键盘输入字符选择下个一或者上一个或者跳出程序 INT 21H CMP AL,'N' JZ NEXT CMP AL,'L' JZ LAST CMP AL,'O' JZ STOP JMP NL LAST: CALL CLEAR ; 清屏 CALL SET_ POSITION ; 置光标位置 DEC BX MOV DL,[BX] CMP DL,20H JZ LAST1 JMP LAST LAST1: DEC BX MOV DL ,[BX] CMP DL,20H JZ SHOW JMP LAST1 NEXT: CALL CLEAR CALL SET_ POSITION INC BX MOV DL,[BX]...