Mail Archives: djgpp/1997/04/20/19:34:50
> > Because, frankly AT&T syntax is giving me the shits. I always
> > thought that anything non-intel was better, but I don't think it's
> > the case here. (Who ever heard of differentiating between movl,
> > movw and movb, when it's obvious from the kinds of operands
> > you use...)
Just on this, whats the problem? If you know what your doing, you
should be able to automatically insert the correct character...
> I don't like the PC AT&T syntax either, its too much of a
> cross between Intel and the one I describe below.
> The Amiga uses what is more like AT&T than Intel but
> A LOT easier than that on the IBM PC.
I programmed the 680x0 range extensively, and found it extremely
easy to move from the ol' defunct Amiga to AT&T on the PC...
AT&T is _MUCH_ more closely related to Motorola syntax than
Intel...
> Each register only has ONE name, therefor the size
> of the operation is indicated by .b, .w, .l after the instruction.
> Example, the Amiga has 8 32-bit Data registers d0-d7. So
> what ever the size of the operation, you use the same
> register name, just indicate the size after the instruction.
> move.w d0, d1
The architectures are completely different, so you have to expect
completely different instructions, registers etc. Having segmented
registers has its advantages on the PC - fixed point math can be so
much easier on a PC simply because of this...
> which would move the word in register d0 into d1.
> This all makes life easier when referring to memory
> locations and constants, you don't have to use
> 'WORD PTR'.
You don't have to use WORD PTR _AT_ALL_ under DJGPP. Forget about
it. AT&T on the PC is extremely similar to Motorola syntax.
Motorola:
mov.l (a0), d0
AT&T:
movl (%esi), %eax
Porting of code between the two is extremely easy, with the only
problems occuring when you have used a lot of 680x0 registers. I
would say you don't understand AT&T very well, or haven't bothered
to learn it...
Leathal.
- Raw text -