/* Copyright 2005 George Peter Staplin */ .global main .equ EXIT_SUCCESS,0 .data .text double_fmt: .string "%G\n" eflags_fmt: .string "0x%x\n" print_eflags: movl $0,%eax lahf pushl %eax pushl $eflags_fmt call printf addl $8,%esp ret /* This expects an address for a double to be in %eax */ print_double: pushl 4(%eax) #double part 2 pushl (%eax) #double part 1 pushl $double_fmt call printf addl $12,%esp ret main: movl $EXIT_SUCCESS,%eax ret