Discussion:
Which freeware assembler would you use on Windows for this source code?
(too old to reply)
Arlen Holder
2020-04-19 00:47:33 UTC
Permalink
*Which freeware assembler would you suggest a noob use on Windows nowadays?*

Source code was kindly provided today on Usenet's MS DOS batch newsgroup:
<http://tinyurl.com/alt-msdos-batch>
That source appears to be Intel X86 assembly language code (AFAICT):
<https://groups.google.com/d/msg/alt.msdos.batch/JZMlGo_2__E/T18O5XWjAwAJ>

In addition, are these the correct newsgroups to be asking this question?
<https://groups.google.com/forum/#!forum/comp.lang.asm.x86>
<http://tinyurl.com/alt-lang-asm>
<http://tinyurl.com/alt-comp-freeware>

*Which freeware assembler would you suggest a noob use on Windows nowadays?*
--
This is the source code:

winmain::
jsr.l (GetCommandLine)
; skip program name
eor.l r1,r1 ; not within "" flag
dec.l r0
_20: inc.l r0
cmp.b #0,(r0)
beq.b _10
cmp.b #'"',(r0)
bne.b _30
not.l r1
_30: or.l r1,r1
bne.b _20
cmp.b #' ',(r0)
bne.b _20
inc.l r0

_10: eor.l r5,r5
move.l #5,r4 ; default: SW_SHOW
_50: movu.bl (r0),r1
inc.l r0
or.b r1,r1
beq.b _40
sub.b #'0',r1
bcs.b _50
cmp.b #9,r1
bhi.b _50
mulsq.l #10,r5,r5
add.l r1,r5
eor.l r4,r4
br.b _50
_40: or.l r4,r4
beq.b _60
move.l r4,r5

_60: jsr.l (GetConsoleWindow)

move.l r5,-(sp)
move.l r0,-(sp)
jsr.l (ShowWindow)

moveq.l #0,-(sp)
jsr.l (ExitProcess) ; exit program
R.Wieser
2020-04-19 06:47:55 UTC
Permalink
Arlen,
Post by Arlen Holder
*Which freeware assembler would you suggest a noob use on Windows nowadays?*
I would suggest you use" Google to do some "research" before posting your
"you guys have to solve anything-and-everything for me" requests in a
newsgroup.
Ah yes, I see Herbert Kleebauer posted that.

So, why not go the obvious way, and ask /him/ which assembler that was made
in/for (chances are he made that code just for you) ? He might even have
a download link for it.
Post by Arlen Holder
In addition, are these the correct newsgroups to be asking this question?
Before doing your own damn work ? None of them.

Enjoy your stay while you can. This is a moderated group, and the moderator
here doesn't take crap well.

Regards,
Rudy Wieser
R.Wieser
2020-04-19 07:15:14 UTC
Permalink
Arlen,
By the way, you missed the ingenuity of Herberts reply. Copy the block
that starts with "@echo off " and ends with "-----END CERTIFICATE-----"
(both lines included!) into a batchfile, and than simply start it.

He (ab)uses the "certutil" command to decode that certificate block into a
file called "showwin.exe". Yep, that certificate is the encoded program
itself. :-) The sourcecode has only been provided as a reference.

God, man. You got everything presented on a silver platter (you prefer so
much), and you do not even recognise it ...

Regards,
Rudy Wieser
Arlen Holder
2020-04-19 10:22:48 UTC
Permalink
UPDATE:

Since this list is based only on my searches and downloads, I make no claims
that they're the canonical sites nor I simply ask if this is the correct list
of X86 assembly language installers available on Windows.

This is what I've found, and downloaded (but not yet installed), so far:
o *as* <https://www.gnu.org/software/binutils/><http://ftp.gnu.org/gnu/binutils/binutils-2.34.tar.xz>
as <http://john.ccac.rwth-aachen.de:8000/as/><http://john.ccac.rwth-aachen.de:8000/as/download.html>
o *a86* <http://eji.com/a86/><http://eji.com/a86.zip>
o *dasm* <https://dasm-assembler.github.io/>
dasm <https://github.com/dasm-assembler/dasm/releases/tag/2.20.13>,dasm-2.20.13-win-x64.zip
o *chasm* <http://www.manmrk.net/tutorials/assembly/asmutl/chasm4.zip>
o *fasm* <http://flatassembler.net/><http://flatassembler.net/fasmw17323.zip>
o *hla* <http://www.plantation-productions.com/Webster/HighLevelAsm/HLAv2.16/hlasetup.exe>
o *masm* <https://www.microsoft.com/en-us/download/details.aspx?id=12654>
o *nasm* <https://www.nasm.us/><https://fossies.org/windows/misc/nasm-2.14.02-win64.zip/>
o *rosasm* <http://techemporium.bananabo.xyz/mirrors/rosasm/><http://sebastien.kirche.free.fr/rosasm_mirror/RosAsm/>
o *tasm* <https://sourceforge.net/projects/guitasm8086/files/latest/download>
o *wasm* <http://www.openwatcom.com/download.php>
o *yasm* <https://yasm.tortall.net/releases/Release1.3.0.html>
o /any others?/

Basically I'm asking you for your purposefully helpful advice on this question:
Q: *Which Windows freeware assembler(s) do you recommend for a noob?*
(given the desire to assemble the given code as the first test of the assembler)
--
There are two types of people on Usenet: one type is purposefully helpful.
R.Wieser
2020-04-19 11:33:02 UTC
Permalink
Arlen,
Post by Arlen Holder
Q: *Which Windows freeware assembler(s) do you recommend for a noob?*
(given the desire to assemble the given code as the first test of the assembler)
As always you throw a few quite unrelated things together, stir them and
post them as if that mess should be able to get a single answer.

Question #1: Which of those assemblers would be good for a noob ?
Answer: That fully depends on the noob and wat he wants to use it for. I
would suggest the assembler with the most users. For the obvious reasons.

Question #2: Which assembler do you need to assemble that sourcecode you
posted:
Answer: Ask Herber Kleebauer, as he wrote it.
Post by Arlen Holder
There are two types of people on Usenet: one type is purposefully helpful.
:-) And than there are the "types of people" you heavily depend on to
spoon-feed you the solutions to all the problems you post. And that
ofcourse means that /you/, as a third type of people, according to your own
definition, do not exist on Usenet. But, here you are. :-)

Trying to sound "smurt" is harder than you think. Especially when you
don't.

Regards,
Rudy Wieser
JJ
2020-04-21 05:07:12 UTC
Permalink
Post by Arlen Holder
Since this list is based only on my searches and downloads, I make no claims
that they're the canonical sites nor I simply ask if this is the correct list
of X86 assembly language installers available on Windows.
o *as* <https://www.gnu.org/software/binutils/><http://ftp.gnu.org/gnu/binutils/binutils-2.34.tar.xz>
as <http://john.ccac.rwth-aachen.de:8000/as/><http://john.ccac.rwth-aachen.de:8000/as/download.html>
o *a86* <http://eji.com/a86/><http://eji.com/a86.zip>
o *dasm* <https://dasm-assembler.github.io/>
dasm <https://github.com/dasm-assembler/dasm/releases/tag/2.20.13>,dasm-2.20.13-win-x64.zip
o *chasm* <http://www.manmrk.net/tutorials/assembly/asmutl/chasm4.zip>
o *fasm* <http://flatassembler.net/><http://flatassembler.net/fasmw17323.zip>
o *hla* <http://www.plantation-productions.com/Webster/HighLevelAsm/HLAv2.16/hlasetup.exe>
o *masm* <https://www.microsoft.com/en-us/download/details.aspx?id=12654>
o *nasm* <https://www.nasm.us/><https://fossies.org/windows/misc/nasm-2.14.02-win64.zip/>
o *rosasm* <http://techemporium.bananabo.xyz/mirrors/rosasm/><http://sebastien.kirche.free.fr/rosasm_mirror/RosAsm/>
o *tasm* <https://sourceforge.net/projects/guitasm8086/files/latest/download>
o *wasm* <http://www.openwatcom.com/download.php>
o *yasm* <https://yasm.tortall.net/releases/Release1.3.0.html>
o /any others?/
Q: *Which Windows freeware assembler(s) do you recommend for a noob?*
(given the desire to assemble the given code as the first test of the assembler)
If you intend to create Windows-only programs, I'd suggest you use a
Windows-only assembler. i.e. which is not cross platform. Otherwise, you'll
be overwhelmed by terminologies of various platforms referred by the
assembler.
p***@nospicedham.gmail.com
2020-04-22 22:03:18 UTC
Permalink
I have made similar research and found those:
https://euroassembler.eu/eadoc/links.htm#Assemblers

vitsoft
r***@nospicedham.gmail.com
2020-05-10 14:26:56 UTC
Permalink
Hi,
First, I think the OP should definitely use FASM. Their message board
has many Windows examples and experts who can help, too.

Otherwise, I'd recommend Ray Seyfarth's PDF book about x64 using YASM.
He has both Windows and Linux editions available.
* http://www.rayseyfarth.com/asm/
Post by p***@nospicedham.gmail.com
https://euroassembler.eu/eadoc/links.htm#Assemblers
A few obvious errors there:

1). JWasm isn't only IA-16 but, in fact, IA-16/IA-32/x64 capable.
Though you can compile it (C sources) for IA-16 host, if you want.
It's much more MASM v6 compatible than original OW's WASM.
Strongly recommended if MASM syntax is preferred.

2). MASM 8.0 from 2006?? I don't use MASM, but they're at least
much newer than that. IIRC, 10.0 dropped legacy DOS target
support (probably in lieu of AVX).

3). NASM is actually 2.14.02 nowadays (not 2.13.02). It's
fairly good, even if not perfect (what is?). YASM is
basically borrowing much from NASM with some select
additions. So the syntax should be very similar.

4). NBASM is also more than IA-16. His newer releases
have Win32 and Win64 host .EXE support. Though I don't
recall exactly, but I think he only targets IA-16/IA-32.

5). POASM, last I heard from JWasm dude, doesn't support
IA-16 target. Also, the macro syntax is maybe different
(versus MASM)??

6). TASM 2.01? The last 16-bit real-mode hosted one was
supposedly 4.1 while latest from Borland was like 5.3
(year 2000). I don't know absolute latest from Embarcadero,
but I heard 5.4 (probably minimal changes). LZASM on your
list is basically a modified TASM (with some additions
and deletions).

7). UASM is just HJWasm renamed. But Japheth has minimally
restarted JWasm development, so it had some prereleases
recently, too (and prebuilt binaries on his Github).

8). WASM/Wolfware is at 2.23 and source is available.
Bonita Montero
2020-05-11 13:11:35 UTC
Permalink
Download Visual Studio for free and use the integraded MASM.
There might be slightly better asemblers, but the debugger
of Visual Studio is very good.

Loading...