输入3-9之间的一个数 生成一个口字:
如 4
XXXX
X X
X X
XXXX
data segment
N dw ?
data ends
code segment
main proc far
assume ds:data,cs:code
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,1
int 21h
cmp al,'3'
jl exit
cmp al,'9'
jg exit
sub al,30h
and ax,0fh
mov [N],ax
mov ah,2 ;linefeed
mov dl,0ah
int 21h
mov dl,0dh
int 21h
mov cx,[N]
first:
mov ah,2
mov dl,'x'
int 21h
loop first
mov bh,byte ptr[N]
dec bh
L:
mov dl,0dh
int 21h
mov dl,0ah
int 21h
dec bh
jz last
mov bl,2 ;bl为中间行输出字符数
L2:
mov dl,'x'
int 21h
dec bl
jz L
mov si,[N]
sub si,2 ;si为中间行输出的空格数
L3:
mov dl,20h
int 21h
dec si
jnz L3
jmp L2
last:mov cx,[N]
L4:mov dl,'x'
int 21h
loop L4
exit:ret
main endp
code ends
end start