剔除字符串中的空格

.model small
.data
.stack

Prompt db 'please input a string :',0dh,0ah,'$'
buff	db 255			;缓冲区,用于存放字符串
	db ?
	db 255 dup (?) 
Newline	db 0dh, 0ah, "$"	;回车换行

 
.code
.startup
    mov dx,offset Prompt
    mov ah,09h
    int 21h
	mov	ax, seg buff	;取数据段存入ds中
	mov	ds, ax
 
	;输入字符串到buff
	mov dx,offset buff
	mov	ah, 0ah
	int	21h
 
	lea	dx, Newline	;输出回车换行
	mov	ah, 9h
	int	21h
	
	;not_use macro
	mov	si, offset buff + 2h	;取字符串地址到si中
outlp:cmp byte ptr [si],'$'
      jz done
      cmp byte ptr [si],' '
      jnz next
      mov di,si
inlp: inc di
      mov al,[di]
      mov [di-1],al
      cmp byte ptr [di],'$'
      jnz inlp
      jmp outlp
next: inc si
      jmp outlp
      ;endm
done: mov	si, offset buff+2h;取字符串地址到si中
 
again:
    cmp byte ptr [si],'$'
    jz bte
	mov	dl, byte ptr [si]	;输出一个字符
	mov	ah, 02h
	int	21h
	inc	si
	jmp again
	
bte: mov	ah, 4ch
	int	21h
      .exit 0
       end


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值