0

我试图在 Assembly 中连接两个字符串,但我似乎无法让它工作。我有以下代码:

.data

message: .asciz "message"
leading: .asciz "leading"

.globl main

main:
    push $message
    push $leading

    call strcat

    push %eax

    call printf
...

当我尝试将超过 16 个字符的字符串附加到另一个字符串时,它会根据 gdb 在 strcat 调用中给出分段错误。我在这里错过了什么吗?有没有办法让 strcat 处理超过 16 个字符的字符串?

谢谢!

4

1 回答 1

2

您分配的总字节数不超过 16 个字节。您需要为生成的字符串保留足够的内存以适合目标。

于 2012-06-06T13:26:11.740 回答