我试图做实践的NASM起见下面返回一个字符数组:从NASM函数
1)阅读来自命令行的字符串用C
2)传递字符串到NASM函数,它接受字符串作为它的第一个参数
3)返回确切字符串从NASM功能
prefix.asm:
;nasm -f elf32 prefix.asm -o prefix.o
segment .bss
pre resb 256
segment .text
global prefix
prefix:
push ebp ;save the old base pointer value
mov ebp,esp ;base pointer <- stack pointer
mov eax,[ebp+8] ;function argument
add esp, 4
pop ebp
ret
前缀C:
//nasm -f elf32 prefix.asm -o prefix.o
//gcc prefix.c prefix.o -o prefix -m32
#include <stdio.h>
#include <string.h>
char* prefix(char *str);
int main(void)
{
char str[256];
char* pre;
int a;
printf("Enter string: ");
scanf("%s" , str) ;
pre = prefix(str);
printf("Prefix array: %s\n", pre);
return 0;
}
我运行后(它编译W/O任何问题),并提供我的字符串的程序,我得到一个分割故障(核心转储)错误。
降低排队的原因是什么? – SpiderRico