.global main
main:
bx lr
如果我这样做:
kali@kali:~/Desktop/arm/NEEVVVV$ ./a.out a b c
Segmentation fault
kali@kali:~/Desktop/arm/NEEVVVV$ echo $?
139
139 是空指针异常.. 为什么会发生这种情况?
我不应该能看到 argv 的数量,因为在 r0 中确实包含 argc 吗?
argc 只是一个整数,为什么这不起作用? int main (int argc, char *argv[])
表示 argc 是一个整数,而不是一个地址,所以如果我看到退出代码 (r0) 应该是 argc,但不是
编辑:
FIXED 通过添加:
.type main%function
在.global main
之后
答案 0 :(得分:0)
回答“我不应该能够看到 argv 的数量,因为 r0 中确实包含 argc 吗?”:
是的,您应该:在我运行 ubuntu 20.04 的 Cortex-A7 系统上:
gcc argc.s
./a.out a b c
echo $?
4
gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
所以您遇到的问题与您的具体开发环境有关,由于您没有提供具体的开发环境,所以很难说原因。