该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
data segment
count dw 18
num dw 255
msg db 'hello$!'
data ends
code segment
main proc far
assume cs:code;ds:data
start:
mov ax,data
mov ds,ax
mov al,1ch
mov ah,25h
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
;;wait for interrupt
mov ax,65534
delay1:
mov di,65534
delay2:
mov si,65534
delay3:
dec si
jnz delay3
dec di
jnz delay2
dec ax
jnz delay1
pop dx
pop ds
mov al,1ch
mov ah,25h
int 21h
mov ax,4c00h
int 21h
main endp
;...................
ring proc near
push ds
push ax
push cx
push dx
mov ax,data
mov ds,ax
sti
dec count
jnz exit
mov dx,offset msg ;
mov ah,09h
int 21h
mov dl,0ah
mov ah,2
int 21h
;mov dl,0dh
;mov ah,2
;int 21h
mov count, 18
cli
pop dx
pop cx
pop ax
pop ds
iret
exit :
cli
pop dx
pop cx
pop ax
pop ds
iret
ring endp
code ends
end start