Scottie Shore <umshore4@xxxxxxxxxxxxxxx> writes: > A test file with the following: > > .text > test: > b test > b test > b test > b test > b test > b test > b test > b test > > generates the following code: > > Disassembly of section .text: > > 00000000 <test>: > 0: eafffffe b 0 <test> > 4: eafffffe b 4 <test+0x4> > 8: eafffffe b 8 <test+0x8> > c: eafffffe b c <test+0xc> > 10: eafffffe b 10 <test+0x10> > 14: eafffffe b 14 <test+0x14> > 18: eafffffe b 18 <test+0x18> > 1c: eafffffe b 1c <test+0x1c> > > with both gcc-3.4.3 compiled from debian sources, and gcc-2.95.2 found on > the LART site. > > I'm at a loss to explain this. How to fix it? Since you are using an assembler source file, this is not a gcc issue. The assembler, gas, is part of the binutils. It would be more appropriate to ask on the binutils mailing list. See http://sourceware.org/binutils/ Anyhow, it looks to me like you are looking at the disassembly of the object file, not of the fully linked executable. If you use objdump -dr, you will see that there are relocations on each of the instructions. The linker will process those relocations when linking to produce a correct final executable. Ian