delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/04/20/19:34:50

From: leathm AT solwarra DOT gbrmpa DOT gov DOT au (Leath Muller)
Message-Id: <199704202328.JAA03863@solwarra.gbrmpa.gov.au>
Subject: Re: spawning NASM from GCC?
To: marl AT rmplc DOT co DOT uk (Liam)
Date: Mon, 21 Apr 1997 09:28:33 +1000 (EST)
Cc: FLEGEL AT physnet DOT uni-hamburg DOT de, djgpp AT delorie DOT com
In-Reply-To: <199704190008.AAA26796@mx2.rmplc.co.uk> from "Liam" at Apr 18, 97 10:45:18 pm

> > 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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019