微机原理课程设计 电子琴 大神帮我注释一下全部代码~谢谢了

data segment
f1 dw 524,588,660,698,784,880,988,1048
data ends
code segment
assume cs:code,ds:data
hhh proc near
mov dx,08ffh
mov cx,0ffffh
yyy:loop yyy
dec dx
jnz yyy
ret
hhh endp
start:mov ax,data
mov ds,ax
xxx: mov ah,1h
int 21h

cmp al,'1' ;判断是否为数字1~8
jb over
cmp al,'8'
ja over

sub al,31h
mov bl,2
mul bl
mov ah,0 ;ax高8位为0
mov si,ax ;保护AL于SI中,以待后用,作为参数传递
mov bx,f1[si]

mov ax,0000h
mov dx,0012h
div bx
mov bx,ax
mov dx,43h ;控制字
mov al,0b6h
out dx,al ;写入控制端口

mov al,bl
out 42h,al ;先写低8位
mov al,bh
out 42h,al ;后写高8位

in al,61h ;读PB口当前状态
mov ah,al
or al,03h ; 使PB0、PB1均为1,打开与门
out 61h,al ;接通扬声器
call hhh ; 调用 hhh

mov al,ah
and al,0fch ;使PB0、PB1均为0,关闭与门
out 61h,al
jmp xxx
over:mov ah,0dh
int 21h
code ends
end start

第1个回答  2015-03-16
关注这个问题
相似回答