早教吧 育儿知识 作业答案 考试题库 百科 知识分享

汇编语言发声程序CODESEGMENTMAINPROCFARASSUMECS:CODESTART:PUSHDSSUBAX,AXPUSHAXmovdx,100inal,61handal,11111100btrig:xoral,2out61h,almovcx,1400hdelay:loopdelaydecdxjnetrigRETMAINENDPCODEENDSENDSTART没发声

题目详情
汇编语言发声程序
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
PUSH AX
mov dx,100
in al,61h
and al,11111100b
trig:
xor al,2
out 61h,al
mov cx,1400h
delay:
loop delay
dec dx
jne trig
RET
MAIN ENDP
CODE ENDS
END START
没发声
▼优质解答
答案和解析
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
PUSH AX
;---------------------------
mov al,0b6h ;向计数器写控制字.
out 43h,al ;方式3、双字节写和二进制计数方式写到控制口.
mov dx,12h ;设置被除数.
mov ax,348ch
mov bx,800
div bx
out 42h,al ;先送LSB
mov al,ah
out 42h,al ;后送MSB
in al,61h ;读端口原值.
or al,3
out 61h,al ;接通扬声器.
mov cx,50000
d1:push cx
loop $
pop cx
loop d1
;---------------------------
RET
MAIN ENDP
CODE ENDS
END START