用汇编语言编程实现简单的略去演奏
追问:乐曲演奏 失误 嘿嘿
追问:乐曲演奏 失误 嘿嘿
答案:DATA SEGMENT
;按12345678表示相应的音符(其中8表示i)
MUS_FREQ DW 262,294,330,347,392,440,494,523
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,0B6H
OUT 43H,AL
REPEAT: LEA BX,MUS_FREQ
MOV AH,08H
INT 21H
CMP AL,0DH
JZ MUS_END
CMP AL,'1'
JB REPEAT
CMP AL,'8'
JA REPEAT
SUB AL,31H
SHL AL,1
ADD BL,AL
MOV DX,12H
MOV AX,3280H
DIV WORD PTR [BX]
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
PUSH AX
OR AL,03H
OUT 61H,AL
CALL DELAY
POP AX
OUT 61H,AL
JMP REPEAT
MUS_END: MOV AH,4CH
INT 21H
DELAY PROC
PUSH CX
PUSH BX
PUSH DX
PUSH AX
MOV BX,20000 ;如果音太短或太长,可以调整这里的BX或CX值
L2: MOV CX,28010
LOOP $
DEC BX
JNZ L2
POP AX
POP DX
POP BX
POP CX
RET
DELAY ENDP
CODE ENDS
END START
其他:。。这是什么
上一个:寄存器间接寻址方式中,操作数在( )中。 A. 通用寄存器 B. I/O端口 C. 存储单元 D. 段寄存器
下一个:汇编编程