Change i386 assembler/disassembler for SIB with INDEX==4

H. J. Lu hjl@lucon.org
Thu Jan 13 22:48:00 GMT 2005


On Thu, Jan 13, 2005 at 12:33:28PM -0800, Allan B. Cruse wrote:
> 
> On Thu, 13 Jan 2005, "H. J. Lu" <hjl@lucon.org> wrote:
> >
> >
> >
> > Subject: Change i386 assembler/disassembler for SIB with INDEX==4
> > 
> > I am proposing to change i386 assembler/disassembler for SIB with
> > INDEX==4
> >                                                                                
> > http://sources.redhat.com/bugzilla/show_bug.cgi?id=658
> >                                                                                
> > It will change the assembler output for (%ebx,[1248]). I am not too
> > worried about the disassembler output since assembler can't generate
> > SIB with INDEX==4 directly today. Any comments?
> > 
> > 
> > H.J.
> > 
> 
> 
> This change would give programmers the freedom to write instruction-
> syntax that the processor cannot actually execute, is that right?  

No. Assemberl will turn "mov (%ebx,2),%eax" into "8b 04 63", which
is valid i386 machine code.

> 
> Perhaps the downside to this would lie in the hours of debugging and
> private research each programmer would then be faced with, trying to
> figure out why  " movl (%esi,2),%eax "  wasn't doing what he/she had
> intended, and which the assembler had dutifully accepted.    --ABC
> 

What do you expect "movl (%esi,2),%eax" will do?


H.J.



More information about the Binutils mailing list