📄 ddjj.asm
字号:
data segment
buf db 0
wen db 'press any key to stop:$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,cs
mov ds,ax
mov ax,data
mov ds,ax
mov dx,offset wen
mov ah,09
int 21h
mov dx,28bh
mov al,8bh
out dx,al
mov buf,33h
ff: mov al,buf
mov dx,288h
out dx,al
push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
je de
mov ah,4ch
int 21h
de: mov dx,28ah
in al,dx
test al,01h
jnz k0
test al,02h
jnz k1
test al,04h
jnz k2
test al,08h
jnz k3
test al,10h
jnz k4
test al,20h
jnz k5
test al,40h
jnz k6
stop: mov dx,288h
mov al,0ffh
jmp ff
k0: mov bl,0ffh
op: test al,80h
jz bb
jmp k
k1: mov bl,0e1h
jmp op
k2: mov bl,0ddh
jmp op
k3: mov bl,0c1h
jmp op
k4: mov bl,0a8h
jmp op
k5: mov bl,90h
jmp op
k6: mov bl,30h
jmp op
bb: call delay
mov al,buf
ror al,1
mov buf,al
jmp ff
k: call delay
mov al,buf
rol al,1
mov buf,al
jmp ff
delay proc near
delay1: mov cx,0f7ah
delay2: loop delay2
dec bl
jnz delay1
ret
delay endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -