assembly - 如何从 asciz 字符串 ARM 程序集中删除空格(没有外部库)
问题描述
我正在尝试使用汇编为我的树莓派 4 制作一个简单的命令行界面,
我可以接收输入并输出到屏幕还可以问题是当我将输入大小设为 20 但只输入 10 时,我会随机添加到屏幕上
这是代码
.data
output: .byte 0
.text
.global _start
_start:
mov R2,#20 @size of input
bl read @call read subroutine
ldr R1,=output @get what was typed
mov R2,#20 @size of output
bl write @call write subroutine
b finish @finish
finish:
mov R7,#1 @ syscall for exit
SWI 0 @software interrupt
write:
MOV R7,#4 @ syscall for output
MOV R0,#1 @use stdout
SWI 0
BX lr
read:
LDR R1, =output
MOV R7,#3 @ syscall for input
MOV R0,#0 @use stdin
SWI 0
BX lr
我得到的输出是
你好(我输入的文字)
你好(正在输出的文本)
\n\o\o\o\oaeabi\o\o\o\o\o (随机的东西)
是否有可能删除用户没有使用上面输入的所有字符作为示例我希望字符串只包含 hello 并删除其他所有内容
一些系统信息:
cpu:broadcomm cortex a72 架构:64位处理器核心/线程:4 / 4 0s:32位raspbian buster arm v8
解决方案
推荐阅读
- python - 设法在另一个 Django 应用程序中使用数据,但 url 不同
- python - 如何使用 Python 将大文件附加到电子邮件 - Gmail API
- c# - 如何使用 Xamarin 应用程序开发自动注销
- php - 从 Laravel 中的文件夹复制文件
- python - 带属性的计算速度
- kubernetes - Kubernetes configmap 删除现有目录的所有内容
- c - gcc 无法识别某些 SDL 函数
- pyspark - PySpark:Dataframe:Numeric + Null 列值导致 NULL 而不是数值
- javascript - 无法将工具提示添加到我的 d3 树节点
- view - 如何将此子查询重新创建到视图