DATA SEGMENTINFO1 DB0DH,0AH,'WELCOME YOU TO COME HERE!$'INFO2 DB0DH,0AH,'PLEASE SELECT!$'INFO3 DB0DH,0AH,'INPUT ERROR!$'MUSLIST DB0DH,0AH,'1 (2.5 SECOND)'DB0DH,0AH,'2 (5.0 SECOND)'DB0DH,0AH,'3 (8.0 SECOND)'DB0DH,0AH,'4 (10.5 SECOND)'DB0DH,0AH,'5 (13.5 SECOND)'DB0DH,0AH,'Q/Q EXIT'DB0DH,0AH,'$'FREG1 DW2DUP(2000,620,2000,620,2000,620,2000,-1)FREG2 DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,-1)FREG3 DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,-1)FREG4 DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,-1)FREG5 DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,620)DW2DUP(2000,620,2000,620,2000,620,2000,-1)TIME1 DW100DUP (100,100,100,100)DATA ENDS;***************************************************************************** STACK SEGMENTDB200DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;********************************************************************************* MAIN PROC FARMOV AX,DATAMOV DS,AXMOV AH, 0;0号功能MOV AL,4;显示方式号4放在 AL中 320*200 四色图形INT10H;显示器输出控制中断调用MOV AH,0BH;置彩色调色板MOV BH,0MOV BL,02H;BH=0,BL=00,背景色为色INT10H;显示器输出控制中断调用MOV AH,0BHMOV BH,01HMOV BL,04HINT10H;显示器输出控制中断调用;*****定义一个宏***************************************************************** SHOW MACRO BLEA DX,BMOV AH,9INT21HENDM;********************************************************************************* SHOW INFO1SHOW INFO2SHOW MUSLISTINPUT: MOV AH,01HINT21HCMP AL,'Q'JZ RETUCMP AL,'1'JNZ B0CALL ZHENGCALL WAITCALL BAOJINGJMP EXITB0:CMP AL,'2'JNZ C0CALL ZHENGCALL WAITCALL BAOJINGJMP EXITC0:CMP AL,'3'JNZ D0CALL ZHENGCALL WAITCALL BAOJINGJMP EXITD0:CMP AL,'4'JNZ E0CALL ZHENGCALL WAITCALL BAOJINGJMP EXITE0:CMP AL,'5'CALL ZHENGCALL WAITCALL BAOJINGEXIT:CALL CLEARSHOW INFO3SHOW INFO1SHOW INFO2SHOW MUSLISTJMP INPUTRETU:MOV AH,4CHINT21HMAIN ENDP;******************************************************************************* WAIT PROC NEARMOV BX,2FFFHWAIT0: MOV CX,0FFFFHDELAY0:LOOP DELAY0DEC BXJNZ WAIT0WAIT ENDP;******************************************************************************** BAOJING PROC NEARPUSH DSMOV BL,ALSUB AX,AXPUSH AXCMP BL,'1'JNZ A0JMP ST1A0:CMP BL,'2'JNZ A1JMP ST2A1:CMP BL,'3'JNZ A2JMP ST3A2:CMP BL,'4'JNZ A3A3:CMP BL,'5'JMP ST5;********************************************************************************** ST1:LEA SI,FREG1JMP STST2:LEA SI,FREG2JMP STST3:LEA SI,FREG3JMP STST4:LEA SI,FREG4JMP STST5:LEA SI,FREG5JMP STST:LEA BP,DS:TIME1;******************************************************************************** FREG:MOV DI,[SI]CMP DI,-1JE END_MUS1MOV DX,DS:[BP]MOV BX,5000CALL GENSOUNDADD SI,2ADD BP,2JMP FREGEND_MUS1:RETBAOJING ENDP;********************************************************************************** GENSOUND PROC NEAR ;发声子程序PUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV AL,0B6HOUT43H,ALMOV DX,12HMOV AX,348CHDIV DIOUT42H,ALMOV AL,AHIN AL,61HMOV AH,ALOR AL,3OUT61H,ALWAIT1: MOV CX,8FF0HDELAY1: LOOP DELAY1DEC BXJNZ WAIT1MOV AL,AHOUT61H,ALPOP DIPOP DXPOP CXPOP BXPOP AXRETGENSOUND ENDP;*********************************************************************************ZHENG PROC NEAR ;报警器图形子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV AH,0FHINT10HMOV AH,0MOV AL,03INT10HMOV CX,10;字符数量MOV AH,2MOV DH,10;10行开始MOV DL,30;35列开始INT10H;*****光标向下动********LINE: MOV AH,2INT10HMOV AL,2MOV AH,9MOV BL,94HINT10HINC DH;行增加CMP DH,14;14行JMP LINE1;****光标向右动*****LINE1: MOV AH,2INT10HMOV AL,2MOV AH,9MOV BL,94HINT10HINC DL;列增加CMP DL,40;45列JNE LINE1JMP LINE2;*****光标向上动*********LINE2: MOV AH,2INT10HMOV AL,2MOV AH,9MOV BL,94HINT10HDEC DHCMP DH,10JNE LINE2JMP LINE3;***光标向左动***LINE3: MOV AH,2INT10HMOV AL,2MOV AH,9MOV BL,94HINT10HDEC DLCMP DL,30JNE LINE3POP DXPOP CXPOP BXPOP AXRETZHENG ENDP;******************************************************************************** CLEAR PROC NEAR ;现场的保护与恢复子程序PUSH AXPUSH BXPUSH DXMOV AH,6 MOV AL,0MOV CH,0MOV CL,0MOV DH,24 MOV DL,79 MOV BH,7INT10HPOP DXPOP CXPOP BXPOP AXRETCLEAR ENDP CODE ENDS END MAIN。