【正确答案】所求程序如下:
code SEGMENT
ASSUME CS:code
start: MOV AL,0b6h ;写8253的控制字寄存器,使用计数器2,按方式3工作
OUT 43h,AL
MOV DX,12h ;将1.19M(CLK的频率)送DX、AX
MOV AX,2870h
MOV BX,300
DIV BX ;300为发声频率,求计数初始值
OUT 42h,AL ;16位计数初值分两次送计数器2
MOV AL,AH
OUT 42h,AL
IN AL,61h
MOV AH,AL
OR AL,3 ;最低两位置1,其它位不变
OUT 61h,AL
MOV CX,5 ;循环5次,控制发声5秒钟
lop0:CALL DELAY
LOOP lop0
MOV AL,AH
OUT 61h,AL
MOV AH,4ch
INT 21h
code ends
end start
【答案解析】