汇编调用libc函数导致分段错误,Ubuntu 64bit

时间:2018-11-24 15:54:56

标签: ubuntu assembly x86-64 glibc gas

我基本上是在写我的第一行汇编语言,所以这很新。 试图从程序集中简单地调用libc的“ printf”。很难找出这几行代码中的错误,不胜感激任何帮助或指针

$ uname -a 
Linux Home 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

你好。

.section .data
msg:
    .asciz "^%s\n"
fmt:
    .asciz "hello world"

.section .bss
.section .text
.globl _start
 _start:
     pushq $fmt
     pushq $msg
     call printf
     addl $16, %esp

     pushq $0
     call exit

使用GNU工具

$ as -o hello.o hello.s
$ ld -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o hello -lc hello.o

$ ./hello
Segmentation fault (core dumped)

0 个答案:

没有答案