源代码
mov dx,offset arro
mov ah,9
int 21h ;输出箭头
mov ah,1
int 21h ;输入闪烁
sub al,30h
call scroll
cmp al,1
je twin
and bh,01111111b ;若闪烁,将bh的7位改为1
jmp a
twin: or bh,10000000b ;若不闪烁,将bh的7位改为0
a: call scroll
call cursormid
mov dx,offset hel0
mov ah,9
int 21h ;输出问候
push bx
call scroll
call cursormid
mov bl,buff+1 ;将输入的字符数存至bl
add bl,2 ;将bl加2,使之指向最后一个字符的下一个字符
mov bh,0 ;将bh置零
add bx,offset buff ;将buff的偏移地址加到bx中
mov byte ptr [bx],'!' ;在字符串最后写入'!'
add bx,1 ;将bx加1,使之指向下一个字符
mov byte ptr [bx],'$' ;在字符串最后写入'$'
mov dx,offset buff+2
mov ah,9
int 21h ;输出字符串(即所存姓名、'!')
pop bx
call scroll
call cursormid
mov dx,offset hel1
mov ah,9
int 21h ;输出字符串,问候
mov ah,4ch
int 21h ;结束程序
scroll proc near
push ax
push bx
push cx
push dx
mov ah,6
mov al,1
mov ch,8
mov cl,30
mov dh,16
mov dl,60
int 10h ;下滚一行
pop dx
pop cx
pop bx
pop ax
ret
scroll endp
cursor proc near
push ax
push bx
push dx
mov ah,2
mov dh,16
mov dl,30 ;移动光标
mov bh,0
int 10h
pop dx
pop bx
pop ax
ret
cursor endp
cursormid proc near
push ax
push bx
push dx
mov ah,2
mov dh,16
mov dl,38 ;移动光标
mov bh,0
int 10h
pop dx
pop bx
pop ax
ret
cursormid endp
code ends
end start