📄 1.asm
字号:
code segment
main proc far
assume cs:code,ds:code
start: push ds
sub ax,ax
push ax
mov ax,code
mov ds,ax
mov al,1ch
mov ah,35h
int 21h
push es
push bx
push ds
mov dx,offset ring
mov ax,seg ring
mov ds,ax
mov al,1ch
mov ah,25h
int 21h
pop ds
in al,21h
and al,11111110b
out 21h,al
sti
mov di,2000
delay: mov si,3000
delay1: dec si
jnz delay1
dec di
jnz delay
mov ah,31h
mov al,0
mov dx,((prog_len+15)/16)+16
int 21h
main endp
ring proc near
push ds
push ax
push cx
push dx
mov ax,code
mov ds,ax
sti
mov ax,0b800h
mov es,ax
dec count
jnz exit
mov bx,cur
mov byte ptr es:[bx],'0'
add cur,2
mov dx,100
in al,61h
and al,0fch
sound:
xor al,02
out 61h,al
mov cx,1400h
wait1:loop wait1
dec dx
jne sound
mov count,18
exit:
cli
pop dx
pop cx
pop ax
pop ds
iret
ring endp
count dw 1
cur dw 0
prog_len equ $-main
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -