xtxttcl 发表于 2008-5-18 16:00

电子琴程序不能发音

PUSH SI
CMP AL,1
JL QUIT
CMP AL,8
JG QUIT  ;若不在'1'-'8'之间转QUIT,不发音
MOV NUM,AL ;求出相应的时间常数的序号
MOV CX,20 ;取60次32个正弦波数据
DDD:
MOV SI,0
LLL:
MOV AL,DATA1[SI] ;取正弦波数据
MOV DX,IO0832A
out   42h,dl
mov   dl,dh
out   42h,dl

INC SI
CMP SI,32 ;是否取完32个数据
JL LLL ;若没有,则继续
LOOP DDD ;总循环次数60是否完,没有,则继续            
A:
MOV DX,PORT1     ;扫描实现任意键暂停
IN AL,DX   ;读状态
AND AL,01H ;判断是否有按键
JNZ FFF;   ;按键延时
JMP QUIT
FFF: MOV CX,60                                       
    JMP A
QUIT:
POP SI
RET


页: [1]

编程论坛