汇编语言(二十四)之输出n行星号

输入一个数n,输出n行星号

程序运行:

 

代码:


datas segment

     line_number_max_len     db  0ffh
     line_number             db  0, 100h dup(?)

	 input_line_number_prompt       db  'input line number:$'
	 output                         db  0dh,0ah,'**********$'
	 output_err                     db  0dh,0ah,'input errorr$'
datas ends

stacks segment stack

    db  100h dup(?)

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks
SKIPLINES   proc  far
start:
       push ds
	   mov ax,0h
	   push ax
       mov ax,datas          ;初始化ds
	   mov ds,ax
       
	   lea dx,input_line_number_prompt       ;输入提示
	   mov ah,9
	   int 21h
	   
	   lea dx, line_number_max_len           ;输入要打印长度
	   mov ah,10
	   int 21h
	      
	   cmp line_number[0],0                 ;将字符串转成数字
	   jz err
	   mov ax,0
	   mov dx,0
	   mov di,10
       mov si,1
       mov cl,line_number[0]
       mov ch,0 	   
	  s:
	   mov bl,line_number[si]
	   cmp bl,'0'
	   jb err
	   cmp bl,'9'
	   ja err
	   sub bl,30h
	   mov bh,0 
	   mul di
	   add ax,bx
       inc si 
	   loop s 
	   
	  mov cx,ax                       ;输出多行字符串
	  s1:
       lea dx,output
	   mov ah,9
	   int 21h
	   loop s1 
	   jmp exit
	   
	  err:
	  lea dx,output_err
	  mov ah,9
	  int 21h
	  
	  exit:
   
       ret
	   
SKIPLINES endp
codes ends

end SKIPLINES

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值