输入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