Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!apple!bionet!agate!pasteur!cinna!c164-bd From: c164-bd@cinna.uucp (John D. Mitchell) Newsgroups: comp.os.msdos.programmer Subject: Re: Microsoft Assembler Complaints Message-ID: <9109@pasteur.Berkeley.EDU> Date: 20 Nov 90 21:04:56 GMT References: <9078@pasteur.Berkeley.EDU> <1990Nov20.141330.13358@polyof.poly.edu> Sender: news@pasteur.Berkeley.EDU Reply-To: c164-bd@cinna.UUCP (John D. Mitchell) Followup-To: comp.os.msdos.programmer Distribution: comp Organization: University of California, Berkeley Lines: 37 In article <1990Nov20.141330.13358@polyof.poly.edu> ted@polyof.poly.edu (Theodore S. Kapela, Staff) writes: >In article <9078@pasteur.Berkeley.EDU> c164-bd@cinna.UUCP (John D. Mitchell) writes: > > [text deleted] > >>Both OPTASM (by SLR Systems) and TASM (v2.0) are at least two or >>three times as fast as MASM, produce better code, and have more > ^^^^^^^^^^^^^^^^^^^ >I don't know about anyone else, but I don't want the assembler I am using >to 'produce' any code that I haven't written. I expect it to generate >the correct machine code instructions for the assembler instructions >I wrote. And, the last I checked, there is a unique pattern of bits for >each mnemonic (but not necesarily the other way around); ie: each >instruction can only be coded one way, although some instructions share >the same bit pattern. JNZ and JNE are just one pair I can think of. > Not quite. The 80x86 instruction set has some bizarre quirks (mostly due to its bastard heritage. There are some special forms of certain instructions that are smaller/faster than the regular version. For example (off the top of my head) there is a version of mov that is both one byte smaller and executes in less time because it assumes a ax destination. Yes, I was originally thinking of jump optimization. OPTASM has a more powerful macro language than either MASM or TASM. TASM and OPTASM are faster and have better diagnostics/error messages. TASM v2.0 has new call syntax that allows for easier multi-high-level- language interfacing. Procedure call, entry, and exit are much more likely to match. (I.e. procedure argument handling is almost as easy as C or Pascal). Thanks, John D. Mitchell johnm@cory.Berkeley.EDU