汇编:滤去(删除)某个字符串中空格符号

 1 ;过滤字符串中的空格
 2 DATAS SEGMENT
 3 string db '     your finger can   change the world0';待测试的字符串0作为结束符
 4 DATAS ends
 5 
 6 CODES SEGMENT
 7     ASSUME CS:CODES, DS:DATAS
 8     START:
 9         mov AX,DATAS
10         mov DS,AX
11 
12         call delspace;调用delspace子程序
13 
14         mov ah,4CH
15         int 21h
16 delspace proc
17         mov si,offset string    ;si存放待判断字符的偏移地址
18     flag1:
19         mov ah,[si]     ;ah零食存放每个待判断的字符
20         cmp ah,'0'      
21         JZ EXIT          ;如果是0则结束程序
22         cmp ah,20H       ;如果是空格
23         JZ delS          ;则让所有的字符往前移动一位
24         inc si           
25         jmp flag1        ;继续判断下一个字符
26 
27     delS:
28         mov di,si       ;记录开始进行移动的偏移地址
29     flag2:
30         mov ah,[di+1]
31         mov [di],ah     ;后一个复制给前一个
32 
33         cmp ah,'0'      
34         JZ  flag1       ;如果为0则结束移位 跳转至flag1继续进行判断空格
35         inc di
36         jmp flag2
37 
38     EXIT:
39         mov byte ptr [si],'$';把最后的0变为结束符方便显示输出
40         mov dx,offset string
41         mov ah,09h
42         int 21h
43         ret
44 delspace endp
45 CODES ends
46     end START
原文地址:https://www.cnblogs.com/roseAT/p/10243741.html