Segmentation Fault in Assembly Program Using AT&T Syntax and GNU Assembler
I've written a test program using AT&T syntax for use with GNU assembler. The program is supposed to print the value
1
using printf.1 Reply
I assemble and link the program with GCC using the following command:
So when I run the program using
./main
, I get a segmentation fault
. Debugging with gdb
reveals that printf
is not found. I've tried using .extern printf
without success.
Someone suggested I should store the stack pointer before calling printf and restore it before RET. Right now I'm unsure how to implement this in AT&T syntax.
I'm not including any specific linker flags with GCC.
Can anyone help me understand why I'm getting the segmentation fault and how to fix it? Also, if storing the stack pointer is necessary, how would I do that in AT&T syntax?