public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Calling equ'd symbols in GAS
@ 2011-07-29  3:21 Eduardo Cavazos
  2011-07-29  3:49 ` Alan Modra
  0 siblings, 1 reply; 14+ messages in thread
From: Eduardo Cavazos @ 2011-07-29  3:21 UTC (permalink / raw)
  To: binutils

Hello,

Here's a small NASM program:

            [BITS 64]
            [ORG 0x0000000000200000]
    
            b_print_newline equ 0x0000000000100040
    
    start:
            call b_print_newline
    
            ret

Assemble it:

    $ nasm -f bin pr-nl-a.asm -o pr-nl-a.app

Disassemble it:

    $ objdump -D -b binary -m i386:x86-64 pr-nl-a.app 
    pr-nl-a.app:     file format binary
    
    
    Disassembly of section .data:
    
    0000000000000000 <.data>:
       0:	e8 3b 00 f0 ff       	callq  0xfffffffffff00040
       5:	c3                   	retq


Here's a GAS version:

            .set b_print_newline , 0x0000000000100040
    
            .text
    
            .global _start
    
    _start:
            
            call b_print_newline
    
            ret

Assemble and link it:

    $ as -o pr-nl-b.o pr-nl-b.s
    $ ld -Ttext 200000 --oformat binary -o pr-nl-b.app pr-nl-b.o

Disassemble it:

    $ objdump -D -b binary -m i386:x86-64 pr-nl-b.app 
    pr-nl-b.app:     file format binary
    
    
    Disassembly of section .data:
    
    0000000000000000 <.data>:
       0:	ff 14 25 40 00 10 00 	callq  *0x100040
       7:	c3                   	retq

As you can see, the disassembled code differs slightly. The code for
`call` in NASM:

    0:	e8 3b 00 f0 ff       	callq  0xfffffffffff00040

vs GAS:

    0:	ff 14 25 40 00 10 00 	callq  *0x100040

Any suggestions for how to implement the GAS version properly?

Also, here's the program in FASM:

            b_print_newline equ 0x0000000000100040
            
            use64
            org 0x0000000000200000
    
    start:  call b_print_newline
            ret

It does the right thing:

    $ objdump -D -b binary -m i386:x86-64 pr-nl-c.app 
    
    pr-nl-c.app:     file format binary
    
    
    Disassembly of section .data:
    
    0000000000000000 <.data>:
       0:	e8 3b 00 f0 ff       	callq  0xfffffffffff00040
       5:	c3                   	retq

Ed

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-08-05 14:13 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-29  3:21 Calling equ'd symbols in GAS Eduardo Cavazos
2011-07-29  3:49 ` Alan Modra
2011-07-29  6:11   ` Eduardo Cavazos
2011-07-29  6:32     ` Alan Modra
2011-07-29  6:50       ` Eduardo Cavazos
2011-07-29  7:35         ` Alan Modra
2011-07-29  7:46           ` Eduardo Cavazos
2011-07-29  9:26             ` Alan Modra
2011-07-29 11:03               ` Eduardo Cavazos
2011-07-29 14:57                 ` H.J. Lu
     [not found]                   ` <1312156228.3441.284.camel@dharmatech-ThinkPad-T61>
2011-08-01 19:29                     ` H.J. Lu
2011-08-01 21:42                       ` Eduardo Cavazos
2011-08-05  4:14                       ` Alan Modra
2011-08-05 14:13                         ` H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).