📄 dzq.asm
字号:
.model small
.stack
.data
.code
.startup
lp: mov ah,1
int 21h
conti:cmp al,'1'
je freq1
cmp al,'2'
je freq2
cmp al,'3'
je freq3
cmp al,'4'
je freq4
cmp al,'5'
je freq5
cmp al,'6'
je freq6
cmp al,'7'
je freq7
cmp al,'8'
je freq8
cmp al,1bh ;如果是esc键,则结束;
je final
jmp lp ;不是esc键,也不是1到8的数字,等待新输入
freq1: mov ax,1193180/524
jmp mainfun
freq2: mov ax,1193180/588
jmp mainfun
freq3: mov ax,1193180/660
jmp mainfun
freq4: mov ax,1193180/698
jmp mainfun
freq5: mov ax,1193180/784
jmp mainfun
freq6: mov ax,1193180/880
jmp mainfun
freq7: mov ax,1193180/988
jmp mainfun
freq8: mov ax,1193180/1048
jmp mainfun
mainfun:
call speaker
call speakeron
mov ah,1
int 21h
call speakeroff
jmp conti
final: .exit 0
;
speaker proc
push ax
mov al,0b6h
out 43h,al
pop ax
out 42h,al
mov al,ah
out 42h,al
ret
speaker endp
;
speakeron proc
push ax
in al,61h
or al,03h
out 61h,al
pop ax
ret
speakeron endp
;
speakeroff proc
push ax
in al,61h
and al,0fch
out 61h,al
pop ax
ret
speakeroff endp
end ;;没有end时,程序结果是另一种情况
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -