.text .global main /* program entry point */ abs: mov %eax,%edx sar $0x1f,%edx xor %edx,%eax sub %edx,%eax ret main: push %ebp mov %esp,%ebp and $0xfffffff0,%esp sub $0x10,%esp mov 0x804a014,%eax call abs mov %eax, 0x8(%esp) movl $0x8048510, 0x4(%esp) movl $1,(%esp) call __printf_chk leave ret .section .rodata prtString: .string "result is %d\n" .section .data a: .long -25