电子琴.txt

来自「电子琴的汇编程序 可以直接在ASM进行编译和运行」· 文本 代码 · 共 80 行

TXT
80
字号
code segment
assume cs:code 
begin: 
      mov dx,0ff2bh ;8255A控制字  
      mov al,10000010b ;B口输入
      out dx,al

      mov al,00110110b    ;8253控制字 计数器0 先读低字节再读高字节 工作方式3 二进制计数  
      mov dx,43h
      out dx,al
      
 kk:  mov dx,0ff29h   
      in  ax,dx      ;读PB口地址
        
      cmp ax,00000001b
      jz  k1          ;发出duo 
      
      cmp ax,00000010b
      jz  k2          ;发出ri 

      cmp ax,00000100b
      jz  k3          ;发出mi 
   
      cmp ax,00001000b
      jz  k4          ;发出fa 

      cmp ax,00010000b
      jz  k5          ;发出suo 

      cmp ax,00100000b
      jz  k6          ;发出la 

      cmp ax,01000000b
      jz  k7          ;发出xi      
      jmp kk
             
   k1:  
        mov ax,2273     
        jmp mm 

   k2:  
        mov ax,2025       
        jmp mm 


   k3:  
        mov ax,1804        
        jmp mm 


   k4:  
        mov ax,1703     
        jmp mm 


   k5:  
        mov ax,1438        
        jmp mm 

      
   k6:  
        mov ax,1351        
        jmp mm 


   k7:  
        mov ax,1204                
        jmp mm 
  
  mm:   mov cx,4500 
        mov dx,40h
        out dx,al
        mov al,ah
        out dx,al
        
  pp:  loop pp   ;时间延迟 
       jmp begin 
  
code ends
  end begin

⌨️ 快捷键说明

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