Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Archive » net.micro.pc » MS Assembler woes
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
MS Assembler woes [message #80948] Tue, 04 June 2013 00:01 Go to next message
johnl is currently offline  johnl
Messages: 109
Registered: February 2013
Karma: 0
Senior Member
Message-ID: <437@ima.UUCP>
Date: Fri, 9-Nov-84 14:20:17 EST
Article-I.D.: ima.437
Posted: Fri Nov  9 14:20:17 1984
Date-Received: Sat, 10-Nov-84 06:55:56 EST
Lines: 37
Nf-ID: #N:ima:12700006:000:1655
Nf-From: ima!johnl    Nov  9 14:19:00 1984

Of late I've been trying to write a little 8088 assembler code with
the Microsoft assembler v. 1.25.  I gather that it's less buggy than
the IBM version, but it's still hard to see how they could have
tested it for more than about 5 minutes before shipping it.  Here are
some bugs that I have tripped over recently.

This program generates bad object code:

_code	segment
	extrn	func:far
	call	func
_code	ends	
	end

The relocatable fixup generated for the call says to try to produce
the pointer to "func" relative to the current code segment rather
than relative to whatever segment the symbol is in, as it should.
This means that, generally speaking, far calls don't work at all.

There also seems to be a problem with relocatable values in generated
STRUC structures.  For some reason, the assembler generates "logical
iterated data" object types (data with repeat counts, though the
repeat counts are almost always 1) when assembling struc things, and
the interaction between LIDATA chunks and relocation FIXUPP chunks in
the object file is so obscure that I can't figure out whether the
assembler is generating bad code or the linker we use, PSA's Plink,
is interpreting it wrong.  We can't use Microsoft's linker to check,
because the program I'm trying to make work has too many symbols for
the small fixed-size table in MS-link.

Does anybody know if the IBM 2.00 assembler is any better?  It's
enough to make a fellow yearn for the good old days toggling octal
numbers into the front panel of a PDP-8.

John Levine, Javelin Software, Cambridge MA 617-494-1400
{ decvax!cca | yale | bbncca | allegra | cbosgd | ihnp4 }!ima!johnl
Levine@YALE.ARPA
Re: MS Assembler woes [message #80958 is a reply to message #80948] Tue, 04 June 2013 00:01 Go to previous message
johnl is currently offline  johnl
Messages: 109
Registered: February 2013
Karma: 0
Senior Member
Message-ID: <441@ima.UUCP>
Date: Sat, 10-Nov-84 23:39:07 EST
Article-I.D.: ima.441
Posted: Sat Nov 10 23:39:07 1984
Date-Received: Mon, 12-Nov-84 07:14:47 EST
Lines: 15
Nf-ID: #R:ima:12700006:ima:12700007:000:397
Nf-From: ima!johnl    Nov 10 17:51:00 1984

Well, I did some more experimentation on the MS assembler 1.25, and found
that all of the following generate bad object code:

	call far [si]
	call far ptr [si]
	call [si].dword		; where dword is a doubleword in a struc
	call far [si].dword

	; try to do it myself
	db	9ah
	dw	offset subr, seg subr

I finally had to put in the bytes for the "call far [si]" in hex.  Ptui.

John Levine, ima!johnl
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: What terminal does minitel.exe emulate?
Next Topic: Blatant Product Announcement - Make for IBM PC's
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Jan 27 15:36:40 EST 2022

Total time taken to generate the page: 0.00676 seconds