实训汇编语言设计——生成一个口字

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

你可能感兴趣的:(汇编,语言,byte)