⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 音乐演奏(t).lst

📁 力求做的更好 就要学习学习在学习 只有不断学习才会不断提高自己
💻 LST
字号:
Microsoft (R) Macro Assembler Version 6.11		    01/13/09 13:42:23
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Rar$DI01.156\音乐演~1.ASM  Page 1 - 1


 0000				DATA      SEGMENT PARA 'DATA'
 0000 0D 0A 57 45 4C 43		INFO1     DB 0DH,0AH,'WELCOME YOU TO COME HERE!$'
       4F 4D 45 20 59 4F
       55 20 54 4F 20 43
       4F 4D 45 20 48 45
       52 45 21 24
 001C 0D 0A 74 68 69 73		INFO2     DB 0DH,0AH,'this is a music program!$'
       20 69 73 20 61 20
       6D 75 73 69 63 20
       70 72 6F 67 72 61
       6D 21 24
 0037 0D 0A 70 6C 65 61		INFO3     DB 0DH,0AH,'please select!$'
       73 65 20 73 65 6C
       65 63 74 21 24
 0048 0D 0A 49 4E 50 55		INFO4     DB 0DH,0AH,'INPUT ERROR!$'
       54 20 45 52 52 4F
       52 21 24
 0057 0D 0A 50 4C 45 41		INFO5     DB 0DH,0AH,'PLEASE INPUT AGAIN!$'
       53 45 20 49 4E 50
       55 54 20 41 47 41
       49 4E 21 24
 006D 0D 0A 41 20 4D 55		MUSLIST   DB 0DH,0AH,'A MUSIC1'
       53 49 43 31
 0077  0D 0A 42 20 4D 55	DB 0DH,0AH,'B MUSIC2'
       53 49 43 32
 0081  0D 0A 43 20 4D 55	DB 0DH,0AH,'C MUSIC3'
       53 49 43 33
 008B  0D 0A 51 20 45 58	DB 0DH,0AH,'Q EXIT'
       49 54
 0093  0D 0A 24			db 0dh,0ah,'$'
 0096 014A 0126 0106 0126	MUS_FREG1 DW 330,294,262,294,3 DUP (330)
       0003 [
        014A
       ]
 00A4  0003 [			DW 3 DUP (294),330,392,392
        0126
       ] 014A 0188 0188
 00B0  014A 0126 0106		DW 330,294,262,294,4 DUP (330)
       0126
       0004 [
        014A
       ]
 00C0  0126 0126 014A		DW 294,294,330,294,262,-1
       0126 0106 FFFF
 00CC  0006 [			MUS_TIME1 DW 6 DUP (25*8),50*8
        00C8
       ] 0190
 00DA  0002 [			DW 2 DUP (25*8,25*8,50*8)
        00C8 00C8 0190
       ]
 00E6  000C [			DW 12 DUP (25*8),100*8
        00C8
       ] 0320

 0100 014A 0188 014A 0126	MUS_FREG2 DW 330,392,330,294,330,392,330,294,330
       014A 0188 014A
       0126 014A
 0112  014A 0188 014A		DW 330,392,330,294,262,294,330,392,294
       0126 0106 0126
       014A 0188 0126
 0124  0106 0106 00DC		DW 262,262,220,196,196,220,262,294,332,262,-1
       00C4 00C4 00DC
       0106 0126 014C
       0106 FFFF
 013A  0003 [			MUS_TIME2 DW 3 DUP(50),25,25,50,25,25,100
        0032
       ] 0019 0019 0032
       0019 0019 0064
 014C  0002 [			DW 2 DUP(50,50,25,25),100
        0032 0032 0019
        0019
       ] 0064
 015E  0003 [			DW 3 DUP(50,25,25),100
        0032 0019 0019
       ] 0064

 0172 0106 0106 0126 0106	MUS_FREG3 DW 262,262,294,262,349
       015D
 017C  014A 0106 0106		DW 330,262,262,294,262
       0126 0106
 0186  0188 015D 0106		DW 392,349,262,262,523
       0106 020B
 0190  01B8 015D 0106		DW 440,349,262,262,466
       0106 01D2
 019A  01D2 01B8 0106		DW 466,440,262,392,349,-1
       0188 015D FFFF

 01A6 0032 0032 0064 0064	MUS_TIME3 DW 50,50,100,100,100
       0064
 01B0  0064 0064 0032		DW 100,100,50,50,100,100
       0032 0064 0064
 01BC  0064 0064 0064		DW 100,100,100,50,50,100
       0032 0032 0064
 01C8  0064 0064 0064		DW 100,100,100,100,100,50
       0064 0064 0032
 01D4  0032 0064 0064		DW 50,100,100,100,100,100
       0064 0064 0064
 01E0				DATA      ENDS

 0000				STACK     SEGMENT PARA STACK 'STACK'
 0000  00C8 [			DB 200 DUP ('STACK')
        53 54 41 43 4B
       ]
 03E8				STACK     ENDS

 0000				CODE      SEGMENT
				ASSUME DS:DATA,SS:STACK,CS:CODE
 0000				MAIN      PROC FAR
 0000  B8 ---- R		MOV AX,DATA
 0003  8E D8			MOV DS,AX
 0005  B4 00			MOV aH, 0  ;0号功能
 0007  B0 04			MOV AL,4  ;显示方式号4放在 AL中  320*200  四色图形
 0009  CD 10			INT 10H  ;显示器输出控制中断调用
 000B  B4 0B			MOV AH,0BH ;置彩色调色板
 000D  B7 00			MOV BH,0
 000F  B3 01			MOV BL,1  ;BH=0,BL=4,背景色为红色
 0011  CD 10			INT 10H  ;显示器输出控制中断调用
 0013  B4 0B			MOV AH,0BH
 0015  B7 01			MOV BH,01H
 0017  B3 00			MOV BL,00
 0019  CD 10			INT 10H  ;显示器输出控制中断调用
				;*****定义一个宏*****
				SHOW      MACRO b
				LEA DX,b
				MOV AH,9
				INT 21H
				ENDM
				;**********************
				show INFO1
 001B  8D 16 0000 R	     1	LEA DX,INFO1
 001F  B4 09		     1	MOV AH,9
 0021  CD 21		     1	INT 21H
				show INFO2
 0023  8D 16 001C R	     1	LEA DX,INFO2
 0027  B4 09		     1	MOV AH,9
 0029  CD 21		     1	INT 21H
				show INFO3
 002B  8D 16 0037 R	     1	LEA DX,INFO3
 002F  B4 09		     1	MOV AH,9
 0031  CD 21		     1	INT 21H
				show MUSLIST
 0033  8D 16 006D R	     1	LEA DX,MUSLIST
 0037  B4 09		     1	MOV AH,9
 0039  CD 21		     1	INT 21H
 003B  B4 01			INPUT:    MOV AH,01H
 003D  CD 21			INT 21H
 003F  3C 51			CMP AL,'Q'
 0041  74 58			JZ retu
 0043  3C 41			CMP AL,'A'
 0045  75 05			JNZ B0
 0047  E8 0055			CALL MUSIC1
 004A  EB 10			JMP EXIT1
 004C  3C 42			B0:       CMP AL,'B'
 004E  75 05			JNZ C0
 0050  E8 00A3			CALL MUSIC2
 0053  EB 07			JMP EXIT1
 0055  3C 43			C0:       CMP AL,'C'
 0057  75 0D			JNZ exit
 0059  E8 00C0			CALL MUSIC3
 005C				EXIT1:    show INFO5
 005C  8D 16 0057 R	     1	LEA DX,INFO5
 0060  B4 09		     1	MOV AH,9
 0062  CD 21		     1	INT 21H
 0064  EB D5			JMP INPUT
 0066				EXIT:
 0066  E8 00DA			call clear
				show INFO4
 0069  8D 16 0048 R	     1	LEA DX,INFO4
 006D  B4 09		     1	MOV AH,9
 006F  CD 21		     1	INT 21H
				show INFO5
 0071  8D 16 0057 R	     1	LEA DX,INFO5
 0075  B4 09		     1	MOV AH,9
 0077  CD 21		     1	INT 21H
				show INFO1
 0079  8D 16 0000 R	     1	LEA DX,INFO1
 007D  B4 09		     1	MOV AH,9
 007F  CD 21		     1	INT 21H
				show INFO2
 0081  8D 16 001C R	     1	LEA DX,INFO2
 0085  B4 09		     1	MOV AH,9
 0087  CD 21		     1	INT 21H
				show INFO3
 0089  8D 16 0037 R	     1	LEA DX,INFO3
 008D  B4 09		     1	MOV AH,9
 008F  CD 21		     1	INT 21H
				show MUSLIST
 0091  8D 16 006D R	     1	LEA DX,MUSLIST
 0095  B4 09		     1	MOV AH,9
 0097  CD 21		     1	INT 21H
 0099  EB A0			jmp input
 009B  B4 4C			RETU:     MOV AH,4CH
 009D  CD 21			INT 21H
 009F				MAIN ENDP

 009F				MUSIC1    PROC NEAR
 009F  1E			PUSH DS
 00A0  2B C0			SUB AX,AX
 00A2  50			PUSH AX
 00A3  8D 36 0096 R		LEA SI,MUS_FREG1
 00A7  8D 2E 00CC R		LEA BP,DS:MUS_TIME1
 00AB  8B 3C			FREG1:     MOV DI,[SI]
 00AD  83 FF FF			CMP DI,-1
 00B0  74 12			JE END_MUS1
 00B2  3E: 8B 56 00		MOV DX,DS:[BP]
 00B6  BB 0578			MOV BX,1400
 00B9  E8 0009			CALL GENSOUND
 00BC  83 C6 02			ADD SI,2
 00BF  83 C5 02			ADD BP,2
 00C2  EB E7			JMP FREG1
 00C4				END_MUS1:
 00C4  C3			RET
 00C5				MUSIC1    ENDP

 00C5				GENSOUND PROC NEAR
 00C5  50			PUSH AX
 00C6  53			PUSH BX
 00C7  51			PUSH CX
 00C8  52			PUSH DX
 00C9  57			PUSH DI
 00CA  B0 B6			MOV AL,0B6H
 00CC  E6 43			OUT 43H,AL
 00CE  BA 0012			MOV DX,12H
 00D1  B8 3280			MOV AX,533H*896
 00D4  F7 F7			DIV DI
 00D6  E6 42			OUT 42H,AL
 00D8  8A C4			MOV AL,AH
 00DA  E6 42			OUT 42H,AL
 00DC  E4 61			IN AL,61H
 00DE  8A E0			MOV AH,AL
 00E0  0C 03			OR AL,3
 00E2  E6 61			OUT 61H,AL

 00E4  B9 8FF0			WAIT1:    MOV CX,8FF0H
 00E7  E2 FE			DELAY1:   LOOP DELAY1
 00E9  4B			DEC BX
 00EA  75 F8			JNZ WAIT1
 00EC  8A C4			MOV AL,AH
 00EE  E6 61			OUT 61H,AL
 00F0  5F			POP DI
 00F1  5A			POP DX
 00F2  59			POP CX
 00F3  5B			POP BX
 00F4  58			POP AX
 00F5  C3			RET
 00F6				GENSOUND ENDP

 00F6				MUSIC2    PROC NEAR
 00F6  1E			PUSH DS
 00F7  2B C0			SUB AX,AX
 00F9  50			PUSH AX
 00FA  8D 36 0100 R		LEA SI,MUS_FREG2
 00FE  8D 2E 013A R		LEA BP,DS:MUS_TIME2
 0102  8B 3C			FREG2:    MOV DI,[SI]
 0104  83 FF FF			CMP DI,-1
 0107  74 12			JE END_MUS2
 0109  3E: 8B 56 00		MOV DX,DS:[BP]
 010D  BB 0578			MOV BX,1400
 0110  E8 FFB2			CALL GENSOUND
 0113  83 C6 02			ADD SI,2
 0116  83 C5 02			ADD BP,2
 0119  EB 90			JMP FREG1
 011B				END_MUS2:
 011B  C3			RET
 011C				MUSIC2    ENDP
 011C				MUSIC3    PROC NEAR
 011C  1E			PUSH DS
 011D  2B C0			SUB AX,AX
 011F  50			PUSH AX
 0120  8D 36 0172 R		LEA SI,MUS_FREG3
 0124  8D 2E 01A6 R		LEA BP,DS:MUS_TIME3
 0128  8B 3C			FREG3:    MOV DI,[SI]
 012A  83 FF FF			CMP DI,-1
 012D  74 13			JE END_MUS3
 012F  3E: 8B 56 00		MOV DX,DS:[BP]
 0133  BB 0578			MOV BX,1400
 0136  E8 FF8C			CALL GENSOUND
 0139  83 C6 02			ADD SI,2
 013C  83 C5 02			ADD BP,2
 013F  E9 FF69			JMP FREG1
 0142				END_MUS3:
 0142  C3			RET
 0143				MUSIC3    ENDP
 0143				clear proc near
 0143  50			push ax
 0144  53			push bx
 0145  51			push cx
 0146  52			push dx
 0147  B4 06			mov  ah,6
 0149  B0 00			mov al,0
 014B  B5 00			mov ch,0
 014D  B1 00			mov cl,0
 014F  B6 18			mov dh,24
 0151  B2 4F			mov dl,79
 0153  B7 07			mov bh,7
 0155  CD 10			int 10h
 0157  5A			pop dx
 0158  59			pop cx
 0159  5B			pop bx
 015A  58			pop ax
 015B  C3			ret
 015C				clear endp
 015C				CODE      ENDS
				END MAIN
Microsoft (R) Macro Assembler Version 6.11		    01/13/09 13:42:23
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Rar$DI01.156\音乐演~1.ASM  Symbols 2 - 1




Macros:

                N a m e                 Type

SHOW . . . . . . . . . . . . . .	Proc


Segments and Groups:

                N a m e                 Size     Length   Align   Combine Class

CODE . . . . . . . . . . . . . .	16 Bit	 015C	  Para	  Private 
DATA . . . . . . . . . . . . . .	16 Bit	 01E0	  Para	  Private 'DATA'	
STACK  . . . . . . . . . . . . .	16 Bit	 03E8	  Para	  Stack	  'STACK'	 


Procedures,  parameters and locals:

                N a m e                 Type     Value    Attr

GENSOUND . . . . . . . . . . . .	P Near	 00C5	  CODE	Length= 0031 Private
MAIN . . . . . . . . . . . . . .	P Far	 0000	  CODE	Length= 009F Private
MUSIC1 . . . . . . . . . . . . .	P Near	 009F	  CODE	Length= 0026 Private
MUSIC2 . . . . . . . . . . . . .	P Near	 00F6	  CODE	Length= 0026 Private
MUSIC3 . . . . . . . . . . . . .	P Near	 011C	  CODE	Length= 0027 Private
clear  . . . . . . . . . . . . .	P Near	 0143	  CODE	Length= 0019 Private


Symbols:

                N a m e                 Type     Value    Attr

B0 . . . . . . . . . . . . . . .	L Near	 004C	  CODE	
C0 . . . . . . . . . . . . . . .	L Near	 0055	  CODE	
DELAY1 . . . . . . . . . . . . .	L Near	 00E7	  CODE	
END_MUS1 . . . . . . . . . . . .	L Near	 00C4	  CODE	
END_MUS2 . . . . . . . . . . . .	L Near	 011B	  CODE	
END_MUS3 . . . . . . . . . . . .	L Near	 0142	  CODE	
EXIT1  . . . . . . . . . . . . .	L Near	 005C	  CODE	
EXIT . . . . . . . . . . . . . .	L Near	 0066	  CODE	
FREG1  . . . . . . . . . . . . .	L Near	 00AB	  CODE	
FREG2  . . . . . . . . . . . . .	L Near	 0102	  CODE	
FREG3  . . . . . . . . . . . . .	L Near	 0128	  CODE	
INFO1  . . . . . . . . . . . . .	Byte	 0000	  DATA	
INFO2  . . . . . . . . . . . . .	Byte	 001C	  DATA	
INFO3  . . . . . . . . . . . . .	Byte	 0037	  DATA	
INFO4  . . . . . . . . . . . . .	Byte	 0048	  DATA	
INFO5  . . . . . . . . . . . . .	Byte	 0057	  DATA	
INPUT  . . . . . . . . . . . . .	L Near	 003B	  CODE	
MUSLIST  . . . . . . . . . . . .	Byte	 006D	  DATA	
MUS_FREG1  . . . . . . . . . . .	Word	 0096	  DATA	
MUS_FREG2  . . . . . . . . . . .	Word	 0100	  DATA	
MUS_FREG3  . . . . . . . . . . .	Word	 0172	  DATA	
MUS_TIME1  . . . . . . . . . . .	Word	 00CC	  DATA	
MUS_TIME2  . . . . . . . . . . .	Word	 013A	  DATA	
MUS_TIME3  . . . . . . . . . . .	Word	 01A6	  DATA	
RETU . . . . . . . . . . . . . .	L Near	 009B	  CODE	
WAIT1  . . . . . . . . . . . . .	L Near	 00E4	  CODE	

	   0 Warnings
	   0 Errors

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -