Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!sdd.hp.com!ucsd!helios.ee.lbl.gov!nosc!cod!bmarsh From: bmarsh@cod.NOSC.MIL (William C. Marsh) Newsgroups: comp.sys.ibm.pc.programmer Subject: Re: Turbo Assembler Message-ID: <1940@cod.NOSC.MIL> Date: 6 Jun 90 19:02:11 GMT References: <551@venice.SEDD.TRW.COM> <2955@unocss.unomaha.edu> <29406@ut-emx.UUCP> <669@digi.lonestar.org> Reply-To: bmarsh@cod.nosc.mil.UUCP (William C. Marsh) Organization: Naval Ocean Systems Center, San Diego Lines: 25 X-Local-Date: 6 Jun 90 12:02:11 PDT In article <669@digi.lonestar.org> mkallas@digi.UUCP (mark kallas) writes: >Their [Turbo] Assembler is fully MASM compatible and twice as fast. I'm sorry, but I have to say that Turbo Assembler is *not* fully compatible with MASM. I have a rather large graphics library written in assembler, and the code that is generated is not the same between the two assemblers, no matter what options (MASM51 or QUIRKS) are used. Specifically, the automatic stack frame generation and parameter passing generate different code, and also have different requirements. Turbo will always generate the "push bp/mov bp,sp" and "pop bp" around any function, but MASM only generates this code if parameters are passed to the function. Also, in the USES clause of the PROC directive, Turbo doesn't let you list BP as a register. If NEC can get in trouble for claiming the original Multisync was VGA compatible (even though it didn't auto-size), then Borland has no business saying TASM is MASM compatible. Bill -- Bill Marsh, Naval Ocean Systems Center, San Diego, CA {arpa,mil}net: bmarsh@cod.nosc.mil uucp: {ihnp4,akgua,decvax,dcdwest,ucbvax}!sdcsvax!nosc!bmarsh "If everything seems to be coming your way, you're probably in the wrong lane."