📄 21.asm
字号:
DATA SEGMENT
; SOUND DB 350,393,441,467,525,589,661
SOUND DW 3409,3036,2706,2555,2273,2026,1805
DATA ENDS
STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX, DATA
MOV DS, AX
MOV DX,2706
CALL STARTS
MOV AH,01H ;键盘输入
INT 21H
CALL STOPS
EXIT: MOV AH,4CH
INT 21H
STARTS PROC ;DX中储存计数初值
PUSH AX
IN AL,61H ;设置控制字
OR AL,03H
OUT 61H,AL
MOV AX,DX ;设置计数初值
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
POP AX
RET
STARTS ENDP
STOPS PROC ;停止发声
PUSH AX
IN AL,61H
AND AL,0FCH
OUT 61H,AL
POP AX
RET
STOPS ENDP
DELY PROC ;延时子程序, 延时AX*CX
PUSH CX
PUSH AX
MOV AX,0FFFH
X1: MOV CX,0FFFFH
X2: DEC CX
JNE X2
DEC AX
JNE X1
POP AX
POP CX
RET
DELY ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -