Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

MASM as standard, fixmem example (Announce)

posted by Rugxulo Homepage, Usono, 07.05.2025, 03:05

> > > NASM was originally strictly two-pass, so some things they did
> without.
> > > (There are even one-pass assemblers with even more restrictions.)
> >
> > NASM has been multi-pass for a long time now.
>
> IIRC, Masm has become a one-pass assembler with version 6+ ( they mentioned
> that to explain why directives IF1 and IF2 have been removed ).

It also became a lot more powerful. When was the last 16-bit version? I'd have to check. Presumably around v5.

> JWasm is "multi-pass", meaning that it continues to reassemble the source
> until there's no change in the segment lengths anymore - that's actually a
> pretty dump strategy...
>
> So one may come to the conclusion that the number of passes is perhaps not
> really a sign of quality.

When massaging PSR Invaders (my favorite testing ground), it's nominally "MASM" syntax already (he used TASM 4.0). But old MASM 1.10 can't handle it unless fixed. Besides the nonsensical "40:' segment overrides that TASM ignores, JWasm can assemble it verbatim. But most other assemblers need brackets around memory references. My point is that adding brackets still requires 5 passes, but further adding explicit size overrides then only needs 2 passes. (OpenWatcom's WASM demands explicit size overrides.)

TASM was originally 1-pass only anyways, only adding /m# later. Usually one-pass is much faster (e.g. A86). MASM was considered quite slow in the old days.

 

Complete thread:

Back to the forum
Board view  Mix view
22552 Postings in 2097 Threads, 401 registered users, 38 users online (0 registered, 38 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum