Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!uunet!overload!dillon From: dillon@overload.Berkeley.CA.US (Matthew Dillon) Newsgroups: comp.sys.amiga.programmer Subject: Re: Assemblers, was Re: Lemmings - a tutorial Part IV Message-ID: Date: 1 Apr 91 20:25:57 GMT References: <23787@well.sf.ca.us> Organization: Not an Organization Lines: 142 In article mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: > >Someone posted to the net a few days ago that Matt Dillon's DAS >assembler is the fastest/best 68000 assembler around. Well, I collect >assemblers in my constant search for better/faster onces, so I >downloaded DICE to check out the assembler. > >Well, whoever it was that recommended it must not use assembler language >for much, because DAS is NOT much of an assembler. When you invoke it >from the command line, it prints the following message: > > >@($)DAS V2.06.04 Feb 14 1991 >(c)Copyright 1990 by Matthew Dillon, All Rights Reserved >DAS is a minimal assembler which accepts output from DC1. >DAS infile -o outfile > > >We who use assembler language don't use "minimal" assemblers. This >assembler is useless to us, but it doesn't claim to be useful to do BLAST IT MIKE, WILL YOU FOR ONCE RESEARCH YOUR !#$%#$% ANSWERS? DAS was never meant to be a general purpose assembler... it was written SOLELY to assemble the output from DC1 for my DICE compiler system. BUT, you can still use DAS to compare assembly verses C for what DAS *does* implement. The fact is that, everything being proportional, If I were to implement macros and includes for DAS tomorrow they would be at the same level of performance as the rest of DAS. *THAT* was the @#$#@ point of the article, which you seem to miss entirely. You seem eager to find fault with everything said but in your eagerness you decidedly MISS much of the points of the posted articles. >anything but assembling the output of Matt's compiler. Who is kidding >who here? No offense to Matt, but to say this is an assembler is a >joke. It no doubt assembles whatever DC1 generates, but DC1 can't >be using much of the 68000 instruction set if it expects DAS to >assemble it. In Matt's behalf, his assembler does what it's advertised >to do. Excuse me, except for macros and includes DAS does a pretty damn good job assembling *all* 68000 instructions... there were a few missing in 2.06.04 but they are all implemented now. It will even optimize forward referenced branches to byte or word according to distance, something the compiler relies on but also something quite useful for hand assembly, I think. >The poster of the article was responding to my posting claiming that >Manx AS is a slow pig when compared to Devpac or Adapt. He also says >that Adapt is not a good assembler. Adapt and Devpac are both written >in assembler language, and Manx is written in 'C'. The results are >appropriate for the language used. ANY ALGORITHM, when coded in both >'C' and assembler will benefit from assembler language, even a bubble >sort. You are missing the point yet again... the reason MANX's AS is so slow has NOTHING to do with the fact that is was coded in C, but has EVERYTHING to do with the fact that slow algorithms were chosen. >Well, just for yuks, I decided to try to benchmark the assemblers in >question. I used a disassembler to make source code from the CygnusEd >executable and ran it through each of the 4 assemblers. Unfortunately, >DAS is totally incapable of assembling much in the way of assembler >language and refused to assemble the source. I was able to get the >... >Here is what I get when I try to use DAS: > >DAS: Line 28644 Error Unrecognized opcode: DCB >DAS: Line 28656 Error Unrecognized opcode: DCB >DAS: Line 28657 Error Unrecognized opcode: DCB >DAS: Line 28664 Error Unrecognized opcode: DCB >DAS: Line 28677 Error Unrecognized opcode: DCB >DAS: Line 28683 Error Unrecognized opcode: DCB >DAS: Line 28688 Error Unrecognized opcode: DCB >DAS: Line 28691 Error Unrecognized opcode: DCB >DAS: Line 28964 Error Unrecognized opcode: DCB >DAS: Line 28965 Error Unrecognized opcode: DCB >DAS: Line 28993 Error Unrecognized opcode: DCB >DAS: Line 29128 Fatal-Error ran out of memory OH GIVE ME A BREAK. You really like making these blanket statements don't you? Try DC.B, even then you might have to change some of the data types because DAS does not implement all of them. >output that looks like this from DAS: > >DAS: Line 428 Error Illegal addressing mode(s) 9 0 for BNE >.. >It also printed to stderr (I couldn't capture it) a bunch of >messages like: > >Expected register! reglist got d0-d4,-(a7) > Um, why don't you POST the lines in question instead of the error messages, it might become more clear as to the problem. Illegal addressing mode 9 is ABSOLUTE-LONG .. let me guess, you had lines like: beq $5000 due to the disassembly, which is illegal. On the otherhand, beq $234(pc) is legal... >-- >******************************************************** >* Appendix A of the Amiga Hardware Manual tells you * >* everything you need to know to take full advantage * >* of the power of the Amiga. And it is only 10 pages! * >******************************************************** Look, up until this posting I have been able to keep my temper in control, but this takes the cake... you simply ignore what you do not want to here, you don't bother to research what you are doing (you didn't bother to read the DAS documentation), and you give up at the smallest inconvenience without even TRYING to figure out the problem. You don't even TRY, and while I can accept that when you blast other people's stuff without blowing my top, I can't accept that when you blast MY stuff so blatently. You aren't thinking. -Matt -- Matthew Dillon dillon@Overload.Berkeley.CA.US 891 Regal Rd. uunet.uu.net!overload!dillon Berkeley, Ca. 94708 USA