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

📄 electronic piano.asm

📁 微机原理——接口应用编程源码
💻 ASM
字号:
       stack  segment stack
       dw 64 dup(?)
       stack ends
       data segment
       msg db 'This is the electronic piano program $'
       data ends
code   segment
       assume cs:code,ds:data
start: mov ax,data
       mov ds,ax
       push ds
       mov ah,06h
       mov bx,offset msg
       int 10h
       mov dx,63h         ;8255 PB:in PA:out 0
       mov al,10000010B   
       out dx,al
  aa:  mov al,00h
       out 60h,al
       mov dx,43h         ;8253 counter 2,way 2
       mov al,10110101B   ;put in bcd code
       out dx,al        
       mov dx,61h
       in  al,dx
       out 60h,al
       jz  aa
       mov ah,al
       mov ah,01h         ;out pa=o1h ,pa0=gate2
       out 60h,al
       mov al,ah
       mov cl,1
       mov bl,00000001B
       cmp al,bl
       je do
       shl bl,cl
       cmp al,bl
       je re
       shl bl,cl
       cmp al,bl
       je me
       shl bl,cl
       cmp al,bl
       je fa
       shl bl,cl
       cmp al,bl
       je so
       shl bl,cl
       cmp al,bl
       je la
       shl bl,cl
       cmp al,bl
       je ti
      
      
do:    mov dx,42h
       mov al,48h    ;1.19MHZclock
       out dx,al
       mov al,45h
       out dx,al
       jmp over
re:    mov dx,42h
       mov al,52h
       out dx,al
       mov al,42h
       jmp over
me:    mov dx,42h
       mov al,10h
       out dx,al
       mov al,36h
       jmp over
fa:    mov dx,42h
       mov al,07h
       out dx,al
       mov al,34h
       jmp over
so:    mov dx,42h
       mov al,36h
       out dx,al
       mov al,30h
       jmp over
la:    mov dx,42h
       mov al,04h
       out dx,al
       mov al,27h
      jmp over

ti:    mov dx,42h
       mov al,13h
       out dx,al
       mov al,24h
      jmp over
over:  
       jmp aa
code ends
end start

⌨️ 快捷键说明

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