📄 song.lst
字号:
Microsoft (R) Macro Assembler Version 4.00 8/27/6 Page 1-1
0000 MYSTACK SEGMENT STACK
0000 0400[ DB 1024 DUP(?)
??
]
0400 MYSTACK ENDS
0000 MYDATA SEGMENT
0000 2A 2A 2A 2A 2A 2A 2A MENUSTR DB '**********************************
****',0DH,0AH
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 0D 0A
0028 2A 31 2C 50 52 45 53 DB '*1,PRESS KEYBOARD PLAY PIANO *',0
DH,0AH
53 20 4B 45 59 42 4F
41 52 44 20 50 4C 41
59 20 50 49 41 4E 4F
20 20 20 20 20 20 20
20 20 2A 0D 0A
0050 2A 20 20 20 31 20 32 DB '* 1 2 3 4 5 6 7 *',0
DH,0AH
20 33 20 34 20 35 20
36 20 37 20 20 20 20
20 20 20 20 20 20 20
20 20 20 20 20 20 20
20 20 2A 0D 0A
0078 2A 20 20 20 51 20 57 DB '* Q W E R T Y U (HIGH) *',0
DH,0AH
20 45 20 52 20 54 20
59 20 55 20 20 20 20
20 20 28 48 49 47 48
29 20 20 20 20 20 20
20 20 2A 0D 0A
00A0 2A 20 20 20 41 20 53 DB '* A S D F G H J (MIDDLE) *',0
DH,0AH
20 44 20 46 20 47 20
48 20 4A 20 20 20 20
20 20 28 4D 49 44 44
4C 45 29 20 20 20 20
20 20 2A 0D 0A
00C8 2A 20 20 20 5A 20 58 DB '* Z X C V B N M (LOW) *',0
DH,0AH
20 43 20 56 20 42 20
4E 20 4D 20 20 20 20
20 20 28 4C 4F 57 29
20 20 20 20 20 20 20
20 20 2A 0D 0A
00F0 2A 32 2C 50 52 45 53 DB '*2,PRESS ESC QUIT *',0
DH,0AH
53 20 45 53 43 20 51
55 49 54 20 20 20 20
Microsoft (R) Macro Assembler Version 4.00 8/27/6 Page 1-2
20 20 20 20 20 20 20
20 20 20 20 20 20 20
20 20 2A 0D 0A
0118 2A 2A 2A 2A 2A 2A 2A DB '**************************************',0
DH,0AH,'$'
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 0D 0A 24
0141 0D 0A 54 48 41 4E 4B QUITSTR DB 0DH,0AH,'THANK YOU FOR PLAYING MY G
AME',0DH,0AH,'$'
20 59 4F 55 20 46 4F
52 20 50 4C 41 59 49
4E 47 20 4D 59 20 47
41 4D 45 0D 0A 24
0163 00 SIGN_QUIT DB 00H
0164 00 TEMP DB 00H
0165 00 HIGH DB 0
0166 00 LOW DB 0
0167 12E0 10D1 0EFB 0E24 KEYBOARD DW 12E0H,10D1H,0EFBH,0E24H,0C99H,0B39H
,0A00H
0C99 0B39 0A00
0175 MYDATA ENDS
0000 MYCODE SEGMENT
ASSUME CS:MYCODE,DS:MYDATA,ES:MYDATA,SS:MYSTA
CK
0000 MAIN PROC FAR
0000 1E PUSH DS
0001 B8 0000 MOV AX,00H
0004 50 PUSH AX ;SAVE PSP START ADDR
0005 B8 ---- R MOV AX,MYDATA
0008 8E D8 MOV DS,AX
000A B0 B6 MOV AL,10110110B
000C E6 43 OUT 43H,AL
000E E8 0176 R CALL INITPROG
0011 E4 61 IN AL,61H
0013 24 FC AND AL,0FCH
0015 E6 61 OUT 61H,AL
0017 E8 0034 R MAINLOOP: CALL MAINTASK
001A E4 61 IN AL,61H
001C 0C 03 OR AL,03H
001E E6 61 OUT 61H,AL
0020 A0 0163 R MOV AL,SIGN_QUIT
0023 3C 00 CMP AL,00H
Microsoft (R) Macro Assembler Version 4.00 8/27/6 Page 1-3
0025 74 F0 JZ MAINLOOP
0027 E8 0183 R CALL RESTOREPROG
002A CB RET
MAIN ENDP
002B E9 00F7 R SD_5: JMP SOUND_5
002E E9 010D R SD_6: JMP SOUND_6
0031 E9 0123 R SD_7: JMP SOUND_7
0034 MAINTASK PROC NEAR
0034 B4 00 MOV AH,00H
0036 CD 16 INT 16H
0038 3C 41 CMP AL,'A'
003A 74 63 JZ SOUND_1
003C 3C 53 CMP AL,'S'
003E 74 75 JZ SOUND_2
0040 3C 44 CMP AL,'D'
0042 74 CB JZ SOUND_3
SONG.ASM(70) : error 53: Relative jump out of range
0044 3C 46 CMP AL,'F'
0046 74 E1 JZ SOUND_4
SONG.ASM(72) : error 53: Relative jump out of range
0048 3C 47 CMP AL,'G'
004A 74 DF JZ SD_5
004C 3C 48 CMP AL,'H'
004E 74 DE JZ SD_6
0050 3C 4A CMP AL,'J'
0052 74 DD JZ SD_7
0054 3C 51 CMP AL,'Q'
0056 74 42 JZ HIGH_1
0058 3C 57 CMP AL,'W'
005A 74 54 JZ HIGH_2
005C 3C 45 CMP AL,'E'
005E 74 66 JZ HIGH_3
0060 3C 52 CMP AL,'R'
0062 74 78 JZ HIGH_4
0064 3C 54 CMP AL,'T'
0066 74 F2 JZ HIGH_5
SONG.ASM(89) : error 53: Relative jump out of range
0068 3C 59 CMP AL,'Y'
006A 74 00 JZ HIGH_6
SONG.ASM(91) : error 53: Relative jump out of range
006C 3C 55 CMP AL,'U'
006E 74 00 JZ HIGH_7
SONG.ASM(93) : error 53: Relative jump out of range
0070 3C 5A CMP AL,'Z'
0072 74 1E JZ LOW_1
0074 3C 58 CMP AL,'X'
Microsoft (R) Macro Assembler Version 4.00 8/27/6 Page 1-4
0076 74 38 JZ HIGH_2
0078 3C 43 CMP AL,'C'
007A 74 42 JZ LOW_3
007C 3C 56 CMP AL,'V'
007E 74 54 JZ LOW_4
0080 3C 42 CMP AL,'B'
0082 74 66 JZ LOW_5
0084 3C 4E CMP AL,'N'
0086 74 78 JZ LOW_6
0088 3C 4D CMP AL,'M'
008A 74 00 JZ LOW_7
SONG.ASM(109) : error 53: Relative jump out of range
008C 3C 1B CMP AL,27 ;ESC=>QUIT
008E 74 00 JZ MAINTASK_8
SONG.ASM(112) : error 53: Relative jump out of range
0090 EB A2 JMP MAINTASK
0092 C6 06 0166 R FF LOW_1: MOV LOW,0FFH
0097 EB 06 90 JMP SOUND_1
009A C6 06 0165 R FF HIGH_1: MOV HIGH,0FFH
009F C6 06 0164 R 00 SOUND_1: MOV TEMP,0
00A4 E8 0132 R CALL LOAD
00A7 C3 RET
00A8 C6 06 0166 R FF LOW_2: MOV LOW,0FFH
00AD EB 06 90 JMP SOUND_2
00B0 C6 06 0165 R FF HIGH_2: MOV HIGH,0FFH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -