汇编:滤去(删除)某个字符串中空格符号
时间: 2023-09-28 08:13:17 浏览: 94
可以使用汇编语言中的字符串操作指令,例如MOVSB、LODSB、STOSB等来实现。以下是一种实现方式:
假设要滤去的字符串存储在SI段寄存器所指向的地址,结果存储在DI段寄存器所指向的地址,可以按照以下步骤实现:
1. 将字符串中的字符逐个读入,使用LODSB指令。
2. 判断读入的字符是否为空格符号,如果是,则跳过该字符,否则将该字符写入到结果字符串中,使用STOSB指令。
3. 重复执行步骤1和步骤2,直到读完整个字符串。
以下是一个示例代码:
```assembly
assume cs:code, ds:data
data segment
src_str db 'Hello, World! ', '$'
dst_str db 20 dup('$')
data ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
xor di, di ; DI寄存器指向结果字符串的起始地址
mov si, offset src_str
read_loop:
lodsb ; 读取一个字符到AL寄存器
cmp al, ' ' ; 判断是否为空格符号
je skip ; 如果是,则跳过该字符
stosb ; 如果不是,则将该字符写入到结果字符串中
skip:
cmp al, '$' ; 判断是否到达字符串结尾
jne read_loop ; 如果没有到达,则继续读取下一个字符
mov ah, 4ch
int 21h
code ends
end start
```
以上代码将会把"Hello, World!"中的空格去掉,最终结果为"Hello,World!"。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)