gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:54:59 26 4
gpt4 key购买 nike

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

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

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

代码

有人知道连接它们的有效方法吗?像我上面那样添加它们不好吗?寄存器仅限于一个字节的数据,所以也许我做错了什么......

我是菜鸟。

最佳答案

类似这样的事情。我假设您的字符串不是以 NULL 结尾的,因为它们似乎不在您的代码示例中。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com