gpt4 book ai didi

c - gcc : Segmentation fault when it executes "stosb" 中的扩展 asm

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:05 25 4
gpt4 key购买 nike

<分区>

问题是,当程序执行到stosb行时,会显示错误:“Program received signal SIGSEGV, Segmentation fault.”我不知道为什么,有什么想法吗?

在ubuntu x86_64下,使用“gcc -o test test.c”编译链接。

#include <stdio.h>

static inline char * strcpy(char * dest,const char *src)
{
int d0, d1, d2;
__asm__ __volatile__("1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: "=&S" (d0), "=&D" (d1), "=&a" (d2)
: "0" (src),"1" (dest)
: "memory");
return dest;
}

int main(void) {
char* src_main = "Hello_src";
char* dest_main = "Hello_des";
strcpy(dest_main, src_main);
puts(src_main);
puts(dest_main);
return 0;
}

enter image description here

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