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

📄 1二极管.asm

📁 汇编程序
💻 ASM
字号:
assume cs:code
	        code segment public
	        org 100h
start:   mov al,0ffh             ;先让灯灭(发光二极管是共阴的)
         mov dx,04b0h
         out dx,al         
again:   mov dx,04a0h            ;读开关状态  
          in al,dx        
          mov ah,al              ;将开关状态存储在ah中
          cmp ah,0feh            ;判断开关K0是否关上     
          jz next1               ;开关K0关上,执行next1
again1:   cmp ah,0fdh            ;开关K0断开,接着判断K1是否关上
          jz next2               ;开关K1关上,执行next2
          mov al,0ffh            ;开关K0,K1都不单独开上,灯灭
           mov dx,04b0h
           out dx,al
           jmp again             ;接着在查询开关状态
next3:     mov al,0ffh
           mov dx,04b0h
           out dx,al
          mov dx,04a0h      
          in al,dx        
          mov ah,al
          mov al,bl              ;将开关状态变化的数据给al,在这个基础上灯的状                                   ;态再继续变化 
          cmp ah,0feh    
          jz next1        
again2:   cmp ah,0fdh    
          mov al,bl
          jz next2
          jmp next3
next1: mov dx,04b0h      ;输出
       out dx,al   
       call delay        ;延时
      push ax            ;将ax入栈
       mov dx,04a0h      ;随时读开关状态,以便及时发生变化
          in al,dx        
          mov ah,al  
       cmp ah,0feh
       pop ax
       mov  bx,ax        ;保存状态发生变化时灯灭的数据
       jnz again2        
       rol al,1          ;通过左移实现灯K0-K7方向亮
       jmp next1      
next2:mov dx,04b0h       ;输出
      out dx,al    
      call delay         ;延时
       push ax           ;将ax入栈 
      mov dx,04a0h       ;随时读开关状态,以便及时发生变化
        in al,dx           
       mov ah,al  
       cmp ah,0fdh
       pop ax
       mov bx,ax         ;保存状态发生变化时灯灭的数据
       jnz next3
       ror al,1          ;通过右移实现灯K7-K0方向亮
       jmp next2  
      delay proc
       timer  =1
       push   bx
                                push  cx
                                mov bx,timer
  lop1:                  xor cx,cx 
  lop2:                  loop lop2
                                dec bx
                                jnz    lop1
                                pop cx
                                pop bx      ;延时
                              ret
  delay  endp
code  ends            	   
	        end   start

⌨️ 快捷键说明

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