.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
剔除字符串中的空格
最新推荐文章于 2022-11-18 17:48:37 发布