学习汇编知识,在连接的时候出问题
文件名是cpuid2.s,具体代码如下
#cpuid2.s View the CPUID Vendor ID string using C library calls .code32 .section .data output: .asciz "The processor Vendor ID is '%s'\n" .section .bss .lcomm buffer,12 .section .text .globl _start _start: movl $0, %edi cpuid movl $buffer, %edi movl %ebx, (%edi) movl %edx, 4(%edi) movl %ecx, 8(%edi) pushl $buffer pushl $output call printf addl $8, %esp pushl $0 call exit
gcc version 9.3.0,Ubuntu20.0版64位
按照书上的描述,ld连接标准的C动态库libc.so,32位Linux的动态加载器程序是ld-linux.so.2
用ldd命令查找后,我的系统是Ubuntu20.0版64位,标准的C动态库是libc.so.6,动态加载器程序是ld-linux-x86-64.so.2
用ld命令连接后,发现运行程序时,发生段错误
搞不懂为啥会发生段错误。而且用ulimit -s命令提高stack size,也不行
求大神指导下。
啥意思?
做了啥?麻烦说下。