Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!purdue!decwrl!decvax!eagle_snax!geoff From: geoff@eagle_snax.UUCP ( R.H. coast near the top) Newsgroups: comp.sys.ibm.pc Subject: Subtle and critical bug in Turbo Assembler 1.0 Keywords: turbo,assembler,borland Message-ID: <396@eagle_snax.UUCP> Date: 17 Nov 88 12:24:50 GMT Lines: 40 The good news about Turbo Assembler is its speed - 6:25 to build PC-NFS, compared to 8:03 under MASM 5.0. The bad news is a nasty little bug. It turns out that if you assemble a statement such as cmp ax, es:word ptr [di].symbol the "es" segment prefix is lost and it is assembled as though you had written cmp ax, word ptr [di].symbol If you modify the code to read cmp ax, word ptr es:[di].symbol everything is fine. Just out of curiosity, I checked to see how many lines of this form we have in PC-NFS (or at least in PC-NFS.SYS). For those with a taste for the macabre, the egrep command was egrep -i "[cdes]s:.*(word|byte|dword).*ptr.*\[..\]" *.asm There were 21 hits. I've talked to Borland; somebody reported the same bug earlier today. THE VERDICT: Don't Use Turbo Assembler (yet), unless you're prepared to find and fix any lines of this form in your source. Geoff -- Geoff Arnold, Sun Microsystems Inc. +------------------------------------+ PC Distributed Systems(home of PC-NFS)|Someone, somewhere, wants an RFC822 | UUCP: {hplabs,decwrl...}!sun!garnold |message from YOU. | ARPA: garnold@sun.com +------------------------------------+