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,4ch
int 21h
code ends
end start
while((ch=getche())!='q') 改成while((ch=getchar())!='\0')
error C2146: syntax error : missing '' before identifier 'WCHAR'
语法错误,在'WCHAR'前丢失''
但我在你的源程序里没发现'WCHAR'
所以还有什么问题,我就不太清楚了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)