📄 l2.asm
字号:
DATA SEGMENT
MSG1 DB 0DH,0AH,'This program is to simulate a pian,key 1-8 express note 1-!'
DB 'Press key # quit to DOS',0DH,0AH,'$'
MSG2 DB 0DH,0AH,'Inputing key should be between 1 and 8',0DH,0AH,'$'
INITAB DW 8E5H,7F4H,70FH,6ADH,5F1H,54BH,4B7H,472H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,09H
INT 21H
LP1: MOV AH,01H
INT 21H
CMP AL,'#'
JZ DONE
CMP AL,1BH
JZ DONE
CMP AL,'1'
JB ERROR
CMP AL,'8'
JA ERROR
AND AL,0FH
DEC AL
SHL AL,1
XOR AH,AH
LEA SI,INITAB
ADD SI,AX
MOV BX,[SI]
MOV AL,01H
OUT 61H,AL
MOV AL,10110110B
OUT 43H,AL
MOV AL,BL
OUT 42H,AL
MOV AL,BH
OUT 42H,AL
IN AL,61H
OR AL,3
OUT 61H,AL
CALL DELAY
AND AL,0FCH
OUT 61H,AL
JMP LP1
ERROR: LEA DX,MSG2
MOV AH,09H
INT 21H
JMP LP1
DONE: MOV AH,4CH
INT 21H
DELAY PROC NEAR
MOV CX,0
DL2: MOV AX,10000
DL1: SUB AX,1
JNZ DL1
LOOP DL2
RET
DELAY ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -