News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

IDE

Started by ShadowNin, April 16, 2020, 12:00:32 AM

Previous topic - Next topic

ShadowNin

Ok so i found the new options but now it says error
LINK : fatal error LNK1181: cannot open input file "C:\file\helloWorld.obj"
Whenever i create an helloWorld.obj it just deletes it.

nidud

As for speed Uasm is actually rather slow compare to other assemblers. The ML version supplied with MASM32 however is very different then newer versions.

7285 ClockTicks: uasm64 \masm32\m32lib\*.asm
4867 ClockTicks: jwasm \masm32\m32lib\*.asm
4181 ClockTicks: asmc \masm32\m32lib\*.asm

As for the samples written for MASM32 Masm (and link) works just fine (speed is not really an issue here).

If you prefer using a clone for 32-bit I would recommend Jwasm from which both Uasm and Asmc derives from. All of these assemblers are written by members of this forum (if that's really an issue). Jwasm is just updated and you may download the latest version here:

https://github.com/Baron-von-Riedesel/JWasm

jj2007

Quote from: nidud on April 16, 2020, 03:19:30 AM
As for speed Uasm is actually rather slow

Tested with a 21,000 lines source:
1800 ms Masm 6.15
1800 ms Masm 10.0
1630 ms UAsm64
1480 ms JWasm
1200 ms AsmC


I would recommend AsmC if it wasn't in constant development and moving towards a C++ compiler. Without specific options, most of my sources do not build correctly. It is certainly a good assembler but too complicated for a n00b IMHO.

I just downloaded the latest JWasm version, and it does build the 21klines source mentioned above, but the author is not particularly active here, so I hesitate to recommend it for the time being. But it's certainly a good candidate for replacing MASM. The old 6.14 version is clearly too old for work with newer instruction sets, while some of the latest MASM versions have pretty serious bugs and are slow.

jj2007

Quote from: ShadowNin on April 16, 2020, 03:13:09 AMWhenever i create an helloWorld.obj it just deletes it.

Small change in the batch file:
REM del %~dpn1.obj

Then check if it really creates the object file. My suspicion is that there is another error message. What exactly do you see in the output window? Can you copy the error messages and post them here?

ShadowNin

Here's what it tells me when i run it using the new entities from the batch files you gave me:

Could Not Find C:\Users\lukez\Desktop\HelloW\helloWorld.exe
UASM v2.49, Jun 21 2019, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.

helloWorld.asm: 18 lines, 2 passes, 11 ms, 0 warnings, 0 errors
POLINK: fatal error: File not found: 'C:\Users\lukez\Desktop\HelloW\helloWorld.obj'.
Could Not Find C:\Users\lukez\Desktop\HelloW\helloWorld.obj

******* There was an error, please check *******

Press any key to continue . . .



And here is when i use Console build all:

Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

Assembling: C:\Users\lukez\Desktop\HelloW\helloWorld.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

LINK : fatal error LNK1181: cannot open input file "C:\Users\lukez\Desktop\HelloW\helloWorld.obj"
_
Link error
Press any key to continue . . .


Also where do i place that small change you said?







nidud

Look, you talking to a person who is basically a noob when it comes to these issues so the first priority should be to guide him in how to assemble a simple hello world sample using MASM32. The package include all the tools needed to accomplish that.

jj2007

Quote from: ShadowNin on April 16, 2020, 03:52:27 AM
Here's what it tells me when i run it using the new entities from the batch files you gave me:

Thanks, now it's clear. Please use the attached new batch files.


@Nidud: You are right, but here the problem is the setup with sources in the Desktop folder. It didn't work with the standard Masm32 setup. I have added "%~dpn1.obj", now it will work. At least, it works fine with a source at C:\Users\Jochen\Desktop\More desktop stuff\MiniWinMasm32.asm (and of course, it works out of the box with RichMasm) :cool:

ShadowNin

It works, thank you very much

nidud

Quote from: ShadowNin on April 16, 2020, 04:12:33 AM
It works, thank you very much

Well, that's sorted then  :thup:

Quote from: jj2007 on April 16, 2020, 03:41:28 AM
Tested with a 21,000 lines source:

This means your 32-bit source assemble with all versions of Masm so you don't really need any other tools than the ones supplied with MASM32.

QuoteI would recommend AsmC

Why would you recommend Asmc? If you write Masm compatible code, as you evidently do, then you obviously don't need Asmc or Uasm. The obvious choice for you will be Jwasm, given the extended features added to Asmc/Uasm breaks the compatiblity with Masm. But then again if you have access to Masm, which you have, why bother with a clone?

Quote
if it wasn't in constant development and moving towards a C++ compiler.

The main difference between Asmc and the rest is that most samples used are written by Microsoft and that include among other things COM and C++. This is needed in order to interact with the Windows operating system and online documentation. It also simplify the introduction to assembler from HLL.

Quote
Without specific options, most of my sources do not build correctly.

So you need to add a command line switch for MasmBasic but that do not apply to MASM32. Thus I don't see that as a major problem it may have more to do with your priorities than Asmc.

QuoteIt is certainly a good assembler but too complicated for a n00b IMHO.

This depends where you coming from. If you experienced with HLL such as Java, C/C++/C# then Asmc is obviously the best choice given that's what is made for as it use the same include files, samples, and online documentation.

Quote
I just downloaded the latest JWasm version, and it does build the 21klines source mentioned above,

Well, there you go.

Quote
but the author is not particularly active here, so I hesitate to recommend it for the time being.

Not sure what that actually mean, but ok.

Quote
But it's certainly a good candidate for replacing MASM. The old 6.14 version is clearly too old for work with newer instruction sets, while some of the latest MASM versions have pretty serious bugs and are slow.

Yes, it's a perfect match given that's what it's made for.

hutch--

#24
ShadowNin,

Just beware of changing assemblers in any real hurry, MASM is supported by Microsoft and has been for just under 40 years, the rest come and go. The masm32 SDK is designed around ML.EXE and while the version that it comes with is old, you can routinely replace it with later versions of ML.EXE. It will be a while before you need to use SSE, AVX, AVX2 and AVX512 instruction sets and by that time you will have enough experience to do any of the changes you need.

What I would recommend to you is to dump all of the suggestions and learn how to use the default MASM32 first. On the partition where you have it installed, create a folder for your projects that is not in the MASM32 installation and start writing your projects there. As far as having an icon on your desktop, any executable file you build can be installed there from the desktop. Have a play with some of the templates installed in the editor as they are simple and show you the layout and logic of the installation.

Once you learn how to use the MASM32 SDK and are familiar with the tools and layout you can set any of this stuff up the way you like.

I have locked this topic as I don't want new members misled by a plethora of conflicting claims and recommendations.