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