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 Content-Type: text Precedence: bulk > > 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.