您好我正在尝试连接两个字符串。
我加载字符串1,2和& 3.我需要将最终字符串存储在r2中。
我使用ldr
从内存加载字符串,我可以使用str
存储它们。
码
任何人都知道连接它们的有效方法吗?像我上面那样添加它们不对吗?寄存器仅限于一个字节的数据,所以也许我在做其他错误的事情......
我是个菜鸟。
答案 0 :(得分:2)
Sonething就是这样。我假设您的字符串不是NULL终止,因为它们似乎不在您的代码示例中。
此外,您还希望将STRING1
和STRING2
存储在.text
部分(只读永久性内存)中,而STRING3
将存入.data
部分,因为它是RAM中的缓冲区。
;Stings 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 SRTRING3
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