最终程序代码:DATA SEGMENT KEY DB 'ABCDEF' TRYKEY DB 7 DB ? DB 7 DUP (?) OLDKEY DB 7 DB ? DB 7 DUP (?) NEWKEY1 DB 7 DB ? DB 7 DUP (?) NEWKEY2 DB 7 DB ? DB 7 DUP (?) FLAG DB 1 DB ? ESUM DB 0 STR1 DB ' PLEASE INPUT KEYCODE:',0DH,0AH DB '$' STR3 DB 'You are right!',0DH,0AH DB '$' STR4 DB 'Keycode error!',0DH,0AH,24H STR5 DB 'Please Input old keycode:',0DH,0AH DB '$' STR6 DB 'Please Input new keycode:',0DH,0AH DB '$' STR7 DB 'Please ReInput new keycode:',0DH,0AH DB '$' STR8 DB 'Keycode modification succeed!',0DH,0AH DB '$' STR9 DB 'The two keycodes are different!',0DH,0AH DB '$' STRa DB 'ESC:Choice to EXIT; ENTER:Choice to go on;',0DH,0AH DB '$' STRc DB 'ESC:Choice to EXIT; ENTER:Choice to Modify keycode;',0DH,0AH DB '$' STRb DB 'ESC:Choice to EXIT; BACKSPACE:RETURN; ENTER:Choice to go on',0DH,0AH DB '$' STRd DB 'ESC:Choice to EXIT; BACKSPACE:RETURN;',0DH,0AH DB '$' DATA ENDSSTACK SEGMENT DW 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX INPUT: MOV AH,9 ;屏幕显示,提示输入密码 LEA DX,STR1 INT 21H MOV AH,0AH ;输入密码 LEA DX,OFFSET TRYKEY INT 21H MOV AH,9 ;屏幕显示,菜单选项 LEA DX,STRa INT 21H MOV AH,1 ;密码正确后下一步选择 INT 21H CMP AL,1BH ;选择 ESC 则退出 JZ EXIT CMP AL,0DH ;选择 ENTER 验证密码 JZ COMPARE COMPARE: ;输入密码与实际密码比较验证 MOV AX,DS MOV ES,AX MOV SI,OFFSET KEY MOV DI,OFFSET TRYKEY INC DI INC DI MOV CX,6 REPE CMPSB JZ RIGHT JNZ E1 E1: MOV DI,OFFSET ESUM INC BYTE PTR[DI] MOV AH,9 ;屏幕显示,输入密码错误 LEA DX,STR4 INT 21H MOV SI,OFFSET FLAG ;密码错误时的音效选择 INC SI MOV BYTE PTR[SI],'F' CMP BYTE PTR[DI],3 ;判断输入是否超过 3 次 JB SHENGYIN ;没超过 3 次连错就调用音效提示错误 JMP EXIT ;输入密码超过 3 次自动结束程序RIGHT: MO...