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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值