📄 音乐演奏(t).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 + -