如何在汇编中连接两个字符串?

时间:2015-03-17 02:37:10

标签: c

您好我正在尝试连接两个字符串。

我加载字符串1,2和& 3.我需要将最终字符串存储在r2中。

我使用ldr从内存加载字符串,我可以使用str存储它们。

任何人都知道连接它们的有效方法吗?像我上面那样添加它们不对吗?寄存器仅限于一个字节的数据,所以也许我在做其他错误的事情......

我是个菜鸟。

1 个答案:

答案 0 :(得分:2)

Sonething就是这样。我假设您的字符串不是NULL终止,因为它们似乎不在您的代码示例中。

此外,您还希望将STRING1STRING2存储在.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