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

📄 light.txt

📁 这是一个用汇编语言写的流水灯演示程序
💻 TXT
字号:
my8255_a     equ   9860h
my8255_b     equ   9861h
my8255_c     equ   9862h
my8255_mode  equ   9863h
data segment
la           db   ?
lb           db   ?
  mess1       db  '流水灯显示',0ah,0dh,'$'
mess2       db  '按除1 、2、3、4以外的任意键程序停止运行',0ah,0dh,'$'
mess3       db  '1.双向单个显示灯',0ah,0dh,'$'
mess4       db  '2.单向单个显示灯',0ah,0dh,'$'
mess5       db  '3.双向连续显示灯',0ah,0dh,'$'
mess6       db  '4.单向连续显示灯',0ah,0dh,'$'
mess7       db  '请输入选项:',0ah,0dh,'$'
mess8       db  '输入有误,请重新输入',0AH,0DH,'$'
data ends
code segment
assume cs:code,ds:data	
start:   mov ax,data
mov ds,ax      
       mov ah,09h
       mov dx,offset mess1
       int 21h
       mov ah,09h
       mov dx,offset mess2
       int 21h
       mov ah,09h
       mov dx,offset mess3
       int 21h
       mov ah,09h
       mov dx,offset mess4
       int 21h
       mov ah,09h
       mov dx,offset mess5
       int 21h
       mov ah,09h
       mov dx,offset mess6
       int 21h
       mov ah,09h
       mov dx,offset mess7
       int 21h
pp:    mov ah,01h
int 21h
       cmp al,31h
       jz  p1
       cmp al,32h
       jz  p2
       cmp al,33h
       jz  p3
       cmp al,34h
       jz  p4
       mov ah,09h
       mov dx,offset mess8
       int 21h
       JMP PP  
p1:    call procedure1
p2:    call procedure2
p3:    call procedure3
p4:    call procedure4
;*********延迟********
dally:  push cx
       mov cx,3ffh
d1:    movax,0ffffh
d2:    dec ax
       jne d2
       loop d1
       pop cx
       ret
;********跳出运行*******
Break proc near
       mov  ah,.6h
       mov dl,0ffh
int 21h      
       je return
       mov ax,4c00h
       int 21h
return: ret
break endp
;*****双向单个显示灯********
procedure1  proc near
       mov dx,my8255_mode
       mov al,80h             
       out dx,al
       mov dx,my8255_a       
       mov al,7fh
       out dx,al
       mov la,al
       mov dx,my8255_b
       mov al,0feh
       out dx,al
       mov lb,al
       call dally
a1:    mov cx,08h
mov al,la
       ror al,1
       mov la,al
       mov dx,my8255_a
       out dx,al
       mov al,lb
       rol al,1
       mov lb,al
       mov dx,my8255_b
       out dx,al
call dally
call break
loop a1       
      procedure1 endp
;*** ***单向单个显示灯******
procedure2  proc near
       mov dx,my8255_mode
       mov al,80h             
       out dx,al

 e11:  mov la,0feh
       mov lb,0feh
       mov cx,08h
e1:     mov al,la
       ror al,1
       mov la,al
       mov dx,my8255_a
       out dx,al
mov al,lb
       ror al,1
       mov lb,al
       mov dx,my8255_b
       out dx,al
call dally
call break
loop e1
       jmp e11
procedure2 endp
;**** **双向连续显示灯*****
procedure3  proc near 
       mov dx,my8255_mode
       mov al,80h             
       out dx,al

b11:   mov la,0ffh
       mov lb,0ffh
       mov cx,08h
b1:     mov al,la
       shr al,1
       mov la,al
       mov dx,my8255_a
       out dx,al
mov al,lb
       shl al,1
       mov lb,al
       mov dx,my8255_b
       out dx,al
call dally
call break
loop b1
b22:   mov la,0
       mov lb,0
       mov bl,80h
       mov bh,01h
       mov cx,08h
b2:    mov al,la
       rol bl,1
       or  al,bl
       mov la,al
       mov dx,my8255_a
       out dx,al
       mov al,lb
       ror bh,1
       or  al,bh
       mov lb,al
       mov dx,my8255_b
       out dx,al
       call dally
       call break
       loop b2
       jmp b11
procedure3 endp
;*****单向连续显示灯*****
procedure4  proc near
       mov dx,my8255_mode
       mov al,80h             
       out dx,al
c11:   mov la,7fh
       mov cx,08h
c1:     mov al,la
       shr al,1
       mov la,al
       mov dx,my8255_a
       out dx,al
call dally
call break
       loop c1
c22:   mov lb,7fh
       mov cx,08h
c2:     mov a;,lb
       shr al,1
       mov lb,al
mov dx,my8255_b
out dx,al
       call dally
       call break
       loop c2
c33:   mov bl,80h    
       mov cx,08h
c3:    mov al,lb
       rol bl,1
       or  al,bl
       mov lb al
       mov dx,my8255_b
       out dx,al
       call dally
call break
       loop c3
c44:   mov bl,80h  
       mov cx,08h
c4:    mov al,la
       rol bl,1
       or  al,bl
       mov la,al
mov dx my8255_a      
       out dx,al
       call dally
       call break
       loop c4
       jmp c11 
procedure4 endp
code ends
end start          

⌨️ 快捷键说明

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