From: japheth on
JWasm v1.8, a Masm v6 compatible free assembler, is out:

http://www.japheth.de/JWasm.html

major changes are

- support for COFF format
- listings supported
- bugfixes

for details see http://www.japheth.de/JWasm/history.txt

From: Frank Kotler on
japheth wrote:
> JWasm v1.8, a Masm v6 compatible free assembler, is out:
>
> http://www.japheth.de/JWasm.html
>
> major changes are
>
> - support for COFF format

There you go!!!

Save me the trouble of trying to get JWasm running on Linux... I have
been informed that, in 32-bit code, for "push ds", Masm emits a 66h
prefix (can this be true???). What's JWasm do with "push ds"? Prefix, or
no prefix?

Best,
Frank
From: japheth on
> Save me the trouble of trying to get JWasm running on Linux...

It (JWASMD) runs fine in DosEmu.

> I have
> been informed that, in 32-bit code, for "push ds", Masm emits a 66h
> prefix (can this be true???). What's JWasm do with "push ds"? Prefix, or
> no prefix?

There's no prefix emitted. Neither by Masm nor JWasm. Doing so would
misalign the stack, as you almost certainly know. Who's telling such
things?


From: Frank Kotler on
japheth wrote:
>> Save me the trouble of trying to get JWasm running on Linux...
>
> It (JWASMD) runs fine in DosEmu.

Ah! I should try that!

>> I have
>> been informed that, in 32-bit code, for "push ds", Masm emits a 66h
>> prefix (can this be true???). What's JWasm do with "push ds"? Prefix, or
>> no prefix?
>
> There's no prefix emitted. Neither by Masm nor JWasm. Doing so would
> misalign the stack, as you almost certainly know.

Yes. Rare enough that we have any need to push a segreg in 32-bit code.
I can't think of any reason to push 16 bits in 32-bit code, period. But
the instruction does exist...

> Who's telling such
> things?

Perhaps my (mis)informant should remain nameless. One of those !YAHOO!
groups I keep an eye on. :)

Thanks for the confirmation.

Best,
Frank
From: japheth on
> I can't think of any reason to push 16 bits in 32-bit code, period.

This might be a useful usage:

push word ptr ds
push ax
pop eax

to get a far16 pointer into eax in mixed-model code without destroying
ax. However, both Masm and JWasm ignore the size override for DS and
won't create a 66h suffix, it must be coded with db.