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

📄 song.lst

📁 用汇编写的键盘钢琴程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -