输入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
本文介绍了一个简单的程序,该程序接收用户输入的一个介于3到9之间的数字,并据此生成一个由'x'组成的口字形图案。文章通过具体代码展示了如何使用汇编语言实现这一功能,包括对输入的验证、输出格式的控制等。
5782

被折叠的 条评论
为什么被折叠?



