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

📄 汇编课设程序(键盘发声).asm

📁 汇编语言的课程设计程序.是用控制键盘发声的
💻 ASM
字号:
data segment
  table1 dw 131,147,165,175,196,220,247
  table2 dw 262,294,330,349,392,440,494
  table3 dw 524,588,660,698,784,880,988
data ends


code segment
  assume cs:code,ds:data
start:
   mov ax,data
   mov ds,ax

zyin:
   mov ah,07
   int 21h
   cmp al,0dh
   je exit
   mov bx,offset table2
   cmp al,'a'
   jz gaoyin
   cmp al,'b'
   jz diyin
   cmp al,'1'
   jb zyin
   cmp al,'7'
   ja zyin
   and ax,0fh
   shl ax,1
   sub ax,2
   mov si,ax
   mov di,[bx][si]
   mov bx,10000
   call soundf
   jmp zyin

exit:
   mov ah,4ch
   int 21h

gaoyin:
   mov ah,07
   int 21h
   cmp al,0dh
   je exit
   mov bx,offset table3
   cmp al,'c'
   jz zyin
   cmp al,'b'
   jz diyin
   cmp al,'1'
   jb gaoyin
   cmp al,'7'
   ja gaoyin
   and ax,0fh
   shl ax,1
   sub ax,2
   mov si,ax
   mov di,[bx][si]
   mov bx,10000
   call soundf
   jmp gaoyin


diyin:
   mov ah,07
   int 21h
   cmp al,0dh
   je exit
   mov bx,offset table1
   cmp al,'a'
   jz gaoyin
   cmp al,'c'
   jz zyin
   cmp al,'1'
   jb diyin
   cmp al,'7'
   ja diyin
   and ax,0fh
   shl ax,1
   sub ax,2
   mov si,ax
   mov di,[bx][si]
   mov bx,10000
   call soundf
   jmp diyin


soundf proc near
 push ax             
 push bx
 push cx
 push dx
 push di
 mov al,06bh
 out 43h,al
 mov dx,12h
 mov ax,348ch
 div di
 out 42h,al
 mov al,ah
 out 42h,al
 in al,61h
 mov ah,al
 or al,3
 out 61h,al


back:
   mov cx,8ff0h
   call waitf
   mov al,ah
   out 61h,al
   pop di
   pop dx
   pop cx
   pop bx
   pop ax
     ret
soundf endp


waitf proc near
 push ax
waitf1:
   in al,61h
   and al,10h
   cmp al,ah
   je waitf1
   mov ah,al
   loop waitf1
   pop ax
      ret
waitf endp

    code ends
end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -