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

📄 flower.asm

📁 电子琴 高音依次为1,2,3,4,5,6,7 中音依次为q,w,e,r,t,y,u 低音依次为a,s,d,f,g,h,j
💻 ASM
字号:

cseg  segment  para  'data'
          assume cs:cseg
tone  proc  far
        push    ds                  
	sub     ax,ax
	push    ax
	   
;
        mov     al,0b6h             ;(al)=1011 0110
        out     43h,al              ;设置计数器2输出方波
                                    ;求计数值
        in      al,61h              ;置61H口b0,b1位为1
        mov     ah,al                  ;保存61H口原值
        or      al,3                   ;b0为1打开定时器2
        out     61h,al                 ;b1为1打开与门
newchar:
        mov     ah,0
        int     16h
        cmp     al,1bh
        je      exit
                                    ;高音1-7
        cmp     al,31h
        jne     isitg2 
        mov     di,524
        jmp     jishuzhi
isitg2: cmp     al,32h
        jne     isitg3 
        mov     di,588
        jmp     jishuzhi
isitg3: cmp     al,33h
        jne     isitg4 
        mov     di,660
        jmp     jishuzhi
isitg4: cmp     al,34h
        jne     isitg5 
        mov     di,698
        jmp     jishuzhi
isitg5: cmp     al,35h
        jne     isitg6 
        mov     di,784
        jmp     jishuzhi
isitg6: cmp     al,36h
        jne     isitg7 
        mov     di,880
        jmp     jishuzhi
isitg7: cmp     al,37h
        jne     isitz1
        mov     di,988
                                   ;中音1-7
isitz1: cmp     al,71h
        jne     isitz2 
        mov     di,262
        jmp     jishuzhi
isitz2: cmp     al,77h
        jne     isitz3 
        mov     di,294
        jmp     jishuzhi
isitz3: cmp     al,65h
        jne     isitz4 
        mov     di,330
        jmp     jishuzhi
isitz4: cmp     al,72h
        jne     isitz5
        mov     di,349
        jmp     jishuzhi
isitz5: cmp     al,74h
        jne     isitz6 
        mov     di,392
        jmp     jishuzhi
isitz6: cmp     al,79h
        jne     isitz7 
        mov     di,440
        jmp     jishuzhi
isitz7: cmp     al,75h
        jne     isitd1 
        mov     di,494
        jmp     jishuzhi
                                     ;低音1-7
isitd1: cmp     al,61h
        jne     isitd2 
        mov     di,131
        jmp     jishuzhi
isitd2: cmp     al,73h
        jne     isitd3 
        mov     di,147
        jmp     jishuzhi
isitd3: cmp     al,64h
        jne     isitd4 
        mov     di,165
        jmp     jishuzhi
isitd4: cmp     al,66h
        jne     isitd5 
        mov     di,175
        jmp     jishuzhi
isitd5: cmp     al,67h
        jne     isitd6 
        mov     di,196
        jmp     jishuzhi
isitd6: cmp     al,68h
        jne     isitd7 
        mov     di,220
        jmp     jishuzhi
isitd7: cmp     al,6ah
        jne     jishuzhi
        mov     di,247
       
 

        
jishuzhi:
        mov     dx,12h                 ;(dx,ax)=1234deH
        mov     ax,34deh               ;时钟频率=1.1931818MHZ
        div     di
        
                                    ;写计数值
        out     42h,al                 ;先写低字节计数值
        mov     al,ah                  ;后写高字节计数值
        out     42h,al
        jmp     newchar

exit:   mov     al,48h
        out     61h,al
        ret
tone    endp
;-------------------------------------------------------
cseg ends
;********************************************************
        end     tone

⌨️ 快捷键说明

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