⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dzq.asm

📁 模拟电子琴 汇编语言编写 有助于汇编的学习及实验
💻 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 + -