字符串、数组操作及搜索排序算法详解
1. 字符串处理程序
1.1 Str_trim 程序
Str_trim 程序用于移除字符串末尾的指定分隔符字符。以下是具体的操作步骤:
1. 假设字符串非空,将 ECX 作为循环计数器,赋值为字符串长度。
2. 为了让 EDI 指向字符串的最后一个字符,将包含字符串长度的 EAX 减 1 后加到 EDI 上。
3. 把 EDI 指向的字符复制到 AL 寄存器,并与分隔符字符进行比较。
4. 如果字符不是分隔符,退出循环,在 L2 处插入空字节。
5. 如果找到分隔符,将 EDI 向后移动一位,继续循环,直到到达字符串开头。
6. 如果整个字符串都由分隔符字符组成,循环计数到零后,在 L2 处插入空字节。
7. L2 之后是 RET 指令,结束该程序。
以下是对应的代码:
; Str_trim 程序实现
mov ecx,eax
; no: ECX = string length
dec eax
add edi,eax
; point to last character
L1:
mov al,[edi]
; get a character
cmp al,char
; is it the delimiter?
jne L2
; no: insert null byte
dec edi
; yes: keep backing up
loop L1
; until beginning reached
L2: mov BYTE PTR [edi+1]
超级会员免费看
订阅专栏 解锁全文
7850

被折叠的 条评论
为什么被折叠?



