您好,我正在尝试连接两个字符串。
我加载字符串 1、2 和 3。我需要将最终字符串存储在 r2 中。
我使用ldr
从内存加载字符串,并且可以使用str
存储它们。
代码
有人知道连接它们的有效方法吗?像我上面那样添加它们不好吗?寄存器仅限于一个字节的数据,所以也许我做错了什么......
我是菜鸟。
最佳答案
类似这样的事情。我假设您的字符串不是以 NULL 结尾的,因为它们似乎不在您的代码示例中。
此外,您还希望将 STRING1
和 STRING2
存储在 .text
部分(只读永久内存),而 STRING3
将进入 .data
部分,因为它是 RAM 中的缓冲区。
; Strings aren't \0 terminated (like in C) so we should deal with the size ourselves
mov r4, #STRING1_SIZE
loop1:
ldrb r3, [r0], #1 ; Copy STRING1 to STRING3
strb r3, [r2], #1
subs r4, #1
bne loop1
mov r4, #STRING2_SIZE
loop2:
ldrb r3, [r1], #1 ; Copy STRING2 to STRING3
strb r3, [r2], #1
subs r4, #1
bne loop2
; Done
关于c - 如何在汇编中连接两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090400/