advise for a good beginner windoze assembler?
advise for a good beginner windoze assembler?
advise for a good beginner windoze assembler?
Masm, Nasm, Fasm... all are good. I prefer Nasm.
ask away all your questions (sure to occur) here or in ASM forum.
In order of suggested above
Masm
Requires visual c https://www.microsoft.com/en-us/download/details.aspx?id=12654
Otherwise, MASM is out of the game in the opening move.
Name is easy.
Binary installer is harder.
Choosing a beginner assembler even harder still.
In order of suggested above
Masm
Requires visual c https://www.microsoft.com/en-us/download/details.aspx?id=12654
Maybe not
MASM https://sourceforge.net/projects/masm611/
Nasm
https://nasm.us/
https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/
Fasm
Maybe here? https://sourceforge.net/projects/fasm/
Or here?
https://flatassembler.net/download.php
Which is the right downloads for Windows 10 (64-bit)?
paul wrote:
In order of suggested above
Masm
Requires visual c
https://www.microsoft.com/en-us/download/details.aspx?id=12654
My advice after trying to install MASM for an hour?
Never recommend MASM to a beginner.
Reason?
The MASM installer is easily found at Microsoft. >https://www.microsoft.com/en-us/download/details.aspx?id=12654
But it fails to install because it's hungry for Microsoft tools.
Microsoft Macro Assembler (MASM)
Microsoft Visual C++ Express Edition 2005 required.
Don't even think of installing the latest Visual C++ as I did. >https://visualstudio.microsoft.com/downloads/
Because it wants an older version.
And don't think just any old older version will work. >https://visualstudio.microsoft.com/vs/older-downloads/
It wants that specific older version.
Which doesn't exist in any Microsoft site that I could find.
Oh sure, you can find plenty of service pack patches for that older version
https://www.microsoft.com/en-eg/download/details.aspx?id=804
VS80sp1-KB926749-X86-INTL.exe 24.3 MB
VS80sp1-KB926747-X86-INTL.exe 32.3 MB
VS80sp1-KB926748-X86-INTL.exe 43.5 MB
VS80sp1-KB926750-X86-ENU.exe 19.0 MB
VS80sp1-KB926751-X86-INTL.exe 29.9 MB
But none of them work without the actual older version.
Windows Installer:
The upgrade patch cannot be installed by the Windows Installer
service because the program to be upgraded may be missing,
or the upgrade patch may update a different version of the program.
Verify that the program to be upgraded exists on your computer
and that you have the correct upgrade patch.
It's a conspiracy, I swear.
If you happen to know where Microsoft hides the "real" 2005 Visual C++,
this noob would love to know where they hid it.
Otherwise, MASM is out of the game in the opening move.
Actually it only requires a linker. Do you think Microsoft would
recommend any but their own?
MASM v8 is ancient.
You absolutely CAN install the current Visual Studio (vs2019) and use
MASM with it. See https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference
MASM has been included with "Express" versions of Visual Studio at
least since 2012 (don't know about earlier). The assemblers are
installed by default with the C or C++ developer packages, or they can
be installed manually.
The executables are "ml.exe" (32-bit) and "ml64.exe" (64-bit).
George Neuner wrote:
Actually it only requires a linker. Do you think Microsoft would
recommend any but their own?
If I can't find the MS URLs, it's cruel to suggest MASM for a beginner.
That's it.
If MASM is in that list, I don't see where.
wolfgang kern wrote:
ask away all your questions (sure to occur) here or in ASM forum.
Which is the ASM forum you speak of if not this one?
I have Peter Norton's ASM hand book but it doesn't come with the assembler.
On 2021-01-19, paul <nospam@nospicedham.nospam.invalid> wrote:beginner.
George Neuner wrote:
Actually it only requires a linker. Do you think Microsoft would
recommend any but their own?
If I can't find the MS URLs, it's cruel to suggest MASM for a
easy
I think people were trying to steer you towards nasm, which has the
to find binaries you've been dreaming of.
Visual Studio is a huge, complicated commercial product. It's also
really popular with Windows Developers, so there's a good chance you
already knew how to navigate the installer and the components.
That's it.
If MASM is in that list, I don't see where.
If you're deadset on masm, it's the "MSVC xxx build tools" component,
but most developers choose "Workloads", and you'll get it with the C++
one.
Just use nasm, it's great. The skills you learn will transfer to any
other assmbler easily.
I think people were trying to steer you towards nasm, which has the easy
to find binaries you've been dreaming of.
Visual Studio is a huge, complicated commercial product. It's also
really popular with Windows Developers, so there's a good chance you
already knew how to navigate the installer and the components.
If MASM is in that list, I don't see where.
If you're deadset on masm, it's the "MSVC xxx build tools" component,
but most developers choose "Workloads", and you'll get it with the C++
one.
Just use nasm, it's great. The skills you learn will transfer to any
other assmbler easily.
Tavis Ormandy wrote:
I think people were trying to steer you towards nasm, which has the
easy to find binaries you've been dreaming of.
I tried Nasm right after the first MASM attempt failed, as I went
through each of the suggestions faithfully, in the order they were
presented to me.
I didn't mention that failed effort because I haven't found a good
tutorial that works the first time (which all good tutorials should).
Strangely, there is no "hello world" in Jeff Duntemann "Assembly
Language Step-by-Step" paperback where his philosophy is different
from mine.
Mine is that we learn empirically where we get things working before
we break them, and his is to break them before we get anything
working.
As you advised, I found that Nasm installed far better than did Masm https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/
In my paperback Jeff Duntemann assembly language book, the first code
is an "eat.asm" example as the first program deep into the book at
page 228
; Source name : EAT.ASM
; Executable name : EAT.COM
; Code model: : Real mode flat model
; Version : 1.0
; Created date : 6/4/1999
; Last update : 9/10/1999
; Author : Jeff Duntemann
; Description : A simple example of a DOS .COM file programmed using
; NASM-IDE 1.1 and NASM 0.98.
[BITS 16] ; Set 16 bit code generation
[ORG 0100H] ; Set code start address to 100h (COM file)
[SECTION .text] ; Section containing code
START:
mov dx, eatmsg ; Mem data ref without [] loads the ADDRESS!
mov ah,9 ; Function 9 displays text to standard output.
int 21H ; INT 21H makes the call into DOS.
mov ax, 04C00H ; This DOS function exits the program
int 21H ; and returns control to DOS.
[SECTION .data] ; Section containing initialized data
eatmsg db "Eat at Joe's!", 13, 10, "$" ; Here's our message
I then ran:
nasm -f BIN EAT.ASM -o EAT.COM
This created "eat.com" which, when executed, errored with
Unsupported 16-Bit-Application
The program or feature "??\C;\mypath\nasm\eat.com" cannot start or
run due to incompatibility with 64-bit versions of Windows.
Please contact the software vendor to ask if a 64-bit Windows
compatible version is available.
Changing this line in "eat.asm" didn't change the error message
; [BITS 16] ; Set 16 bit code generation
; [BITS 32] ; Set 32 bit code generation
[BITS 64] ; Set 64 bit code generation
Nor did commenting it out entirely.
I probably have to figure out how to specify a 64-bit address
or 64-bit registers, as something is wrong above.
I didn't bring this up because this problem is due to me being too
much of a noob to know why I even need to set the number of bits, nor
why no matter what setting I use, I get the same error.
What I really need is a decent Nasm tutorial which starts with a
working "hello world" example. Then I can worry about the intricacies
of assembly language coding on a 64-bit Windows 10 box.
I'm OK with Nasm. As I said I was simply faithfully following advice
given.
My Nasm problem isn't in the installer but in the tutorial since not
only didn't the Duntemann book have an "hello world", it seems to use
gcc, where if I had wanted to use a compiler, I would have started
with a higher level language to learn.
Any decent Nasm tutorial you know of?
No, it's because the created "application" will only work under DOS or an emulated environment -nothing to do with the BITS setting; W10 doesn't
have a DOS compatible subsystem out of the box. (32bit Win XP is fine!)
What I really need is a decent Nasm tutorial which starts with a
working "hello world" example. Then I can worry about the intricacies
of assembly language coding on a 64-bit Windows 10 box.
you'll need DOSEMU or DOSBOX or somesuch.
Kerr-Mudd,John wrote:
Thanks for that advice as I want to start with something working like a "hello world", and then proceed from there with at least the first program working. That's how tutorials are supposed to work anyways.
I guess that probably means I need to change the original question to ask
for an assembler that works with a modern operating system like Win10 x64.
you'll need DOSEMU or DOSBOX or somesuch.
Does that mean there are no free assemblers (along with beginner tutorials) that work native on a modern Win10 x64?
NASM, FASM and I think even MASM have their own forum, google mayu help.
Does that mean there are no free assemblers (along with beginner tutorials) that work native on a modern Win10 x64?
The assembler isn't the issue, you're trying to assemble a program
written for DOS. You need to find a tutorial designed for the system
you're targetting.
Which language do you usually write in? If you're a C
programmer, you wouldn't expect CreateWindowEx() to work on DOS, and
likewise int 21h doesn't work on Windows.
The assemblers suggested can assemble programs for Windows 10, you've
been given good advice.
Do you mean "beginner" in the sense that you're an experienced Win32 developer, but not familiar with assembly?
I press the Windows key & the "r" key, and then I type "cmd"
and then I press the "enter" key. Whatever CLI that happens to
be called, is what I want the program I assemble to work inside of.
Tavis Ormandy wrote:
The assembler isn't the issue, you're trying to assemble a program
written for DOS. You need to find a tutorial designed for the system
you're targetting.
I apologize if I didn't know enough to ask the right question.
I just want to assemble a few programs on the Windows 10 x64 command line.
I would have called that "DOS" but it seems it's not DOS at all based on
what others said, so I don't know what else to call that command interface.
Did you ever take a lab class in school?
The lab tells you exactly what to do, does it not?
You learn by watching what happens, but the lab is designed to work.
I'll try (again) to find that example,
https://forum.nasm.us/index.php?topic=2656.msg11959#msg11959
Not a tutorial.
Best,
Frank
I apologize if I didn't know enough to ask the right question.
I feel your frustration, but you're trying to jump in at the deep end
with native win64 assembly language.
This is just opinion, but I think
starting with C or C++ would be a better option. If you want to learn assembly as you go, you can examine the code the compiler generates and
try to follow along with what it's doing.
One fun tool you can look at is compiler explorer, take a look: https://godbolt.org/z/WW3383
You write some C on the left, and it shows you nicely formatted
assembly on the right. You can try changing something, and watch what
happens to the generated code.
If you think a simple tutorial can teach you assembly programing,
then maybe are misunderstanding something. There are 3 parts of
assembly programming:
Which, seems odd to me that a boolean operation that always returns FALSE would be the result, but hey, I didn't write the code explorer - I'm just testing it (someone is going to have to explain that one to me!). :)
Which returns, surprise!
main:
xor eax, eax
ret
There is no "compilation error", but it says "Compiler returned: 0",
which, I guess, maybe, perhaps, I dunno, is that an error or did it work?
It's what everyone would want who is a noob who just wants a working set of examples (aka a tutorial) on the most common computer platform there ever was.
Just as a person can hike an existing trail that someone else dug out and
put all the steps and bridges and maps in place years before, I just want to "walk the trail" of an existing assembly language programming tutorial.
Back to the original need, I will endeavor to find a tutorial that
works on the most common computer platform in the world, using
whatever assembler that tutorial suggests.
Just as a person can hike an existing trail that someone else dug out and put all the steps and bridges and maps in place years before, I just want to "walk the trail" of an existing assembly language programming tutorial.
When I asked the question originally, I had no idea it would be this
hard.
I figured it would be like any freshman level physics lab.
1. You check out the equipment (e.g., a capacitance tester)
2. You grab a ziplock bag of pre-prepared capacitors of various types
3. You measure their capacitance, and write up a report
Notice that the lab is designed to work.
The student simply follows the steps.
The learning is in watching it work.
The reason I dropped the comp sci curriculum was syntax, where every
language does the same damn thing using completely different syntax.
For example, Fortran's trenchant yet precise syntax resulted in a
terse "Error 50", which you had to look up in a book in the computer
room locked down to a table with half the pages missing.
On the
opposite side of the spectrum, COBOL was downright loquacious, with
bombastic divisions and gabby data types.
Somewhere in between was
PL/1 but my point is they all do the same damn thing, but with
completely different syntax.
I swore I'd never learn another programming language in the early
seventies, and I stuck to my word,
and even now, I don't want to learn assembly language just like I
don't want to learn how to design a microprocessor.
I don't want to write my own assembly language programs.
I just want to watch it happen which is why I seek a tutorial.
In my not too distant past, I had, like everyone did, all the SAMS
books,
I just want to learn about assembly language by running a simple tutorial.
On Wed, 20 Jan 2021 13:04:01 GMT, paul
[]
Back to the original need, I will endeavor to find a tutorial that
works on the most common computer platform in the world, using
whatever assembler that tutorial suggests.
Sorry we couldn't help; x86 is ancient technology that requires a lot of effort to get into. I doubt there's much impetus to create a slick modern streamlined tutorial.
On 20.01.2021 13:47, paul wrote:
...
I just want to learn about assembly language by running a simple
tutorial.
windoze is NOT simple. In terms of easy programming it is the WORST.
I'm a low level programmer and know x86 instructions very well, but
ASM tools are all different therefore I've gone the pure metal
hex-way. And once (1999) I needed to learn about windoze in general
because a paying client asked for such.
similar to your problem I had no idea where to start and how to get
info about available M$-functions.
I found RosAsm (for 32bit windoze) and a lot of tutorials within it.
With some help of alt.asm and clax I figured the basics of it.
So after a few weeks I could sell my very first (also my last)
win-app. Not sure if the RosAsm forum is still active. just check on
it.
Nasm is merely used by Loonix coders, Fasm(Fasmw) is fine for windoze.
Masm is M$-crap (you already figured that)
Masm32 is/was? an attempt to replace Masm.
__
wolfgang
The Basics weren't much to tell. Bernhard could do a few lines on it :)
On 20.01.2021 13:47, paul wrote:
...
I just want to learn about assembly language by running a simple tutorial.
windoze is NOT simple. In terms of easy programming it is the WORST.
Paul,
I press the Windows key & the "r" key, and then I type "cmd"
and then I press the "enter" key. Whatever CLI that happens to
be called, is what I want the program I assemble to work inside of.
The problem is that you can run true (16-bit) DOS programs[1] (using INT 21h >and whatnot) as well as CLI (Command Line Interface - Windows Console) >programs (using the full gamut of Windows DLLs) in there.
[1] Caveat emptor: I'm using Win XP myself. I have no idea if still works >under Win10.
This is a return to the 8-bit microprocessors of the 1980's.
You're jumping in after decades of microprocessor development.
It's a bit more like learning calculus.
There are centuries of
knowledge which came before you got to class. You get to start at the
very beginning. Lucky you.
1970's? Which language did you decide was your last to learn? E.g.,
and even now, I don't want to learn assembly language just like I
don't want to learn how to design a microprocessor.
I don't think anyone has /wanted/ to design a microprocessor since Byte magazine of the 1980's.
Did you once learn any 8-bit assembly, e.g., 6502 or Z80?
If so, the early 8086 instructions are similar in terms of
functionality. That's a starting point for you. Get an early 8086
manual.
http://bitsavers.trailing-edge.com/ http://bitsavers.trailing-edge.com/components/intel/8086/
It's the layering of x86 instructions over the decades of the numerous additional more advanced instruction sets, operating system
instructions, numerous operating modes, and mode specific instructions,
that will cause plenty of mental grief.
If you want to check out the complexity of x86, try getting lost on
this website:
https://www.sandpile.org/
I don't want to write my own assembly language programs.
I just want to watch it happen which is why I seek a tutorial.
There are some in browser emulators around. I don't recall if any
works for x86 code.
In my not too distant past, I had, like everyone did, all the SAMS
books,
Not too distant past? Dude, SAMS was late 1980's and early 1990's,
roughly 3 decades ago. Did you just come out of a coma? ;-)
Rod Pemberton wrote:
This is a return to the 8-bit microprocessors of the 1980's.
Yes. (IMHO)
All I'm asking for is a working noob tutorial, with an assembler, on
the most common desktop platform on the planet.
All I want is a working noob tutorial with a working freeware
assembler (on the most common home desktop computing platform on the
planet).
All I'm asking for is a working noob tutorial, with an assembler, on the
most common desktop platform on the planet.
Rod Pemberton wrote:
This is a return to the 8-bit microprocessors of the 1980's.
Yes. (IMHO)
All I'm asking for is a working noob tutorial, with an assembler, on
the most common desktop platform on the planet.
Rod Pemberton wrote:
This is a return to the 8-bit microprocessors of the 1980's.
Yes. (IMHO)
All I'm asking for is a working noob tutorial, with an assembler, on the
most common desktop platform on the planet.
You're jumping in after decades of microprocessor development.
No. (IMHO).
The reason for the yes and for the no is...
Nothing has actually changed even when everything seems to have changed.
Nothing has really changed even when everything seems to have changed.
All I'm asking for... is the lab.
Labs always work.
In a well-designed lab, the learning is in watching it work.
1970's? Which language did you decide was your last to learn? E.g.,
(a) BASIC <== I wrote plenty in the early days of "home computers"
(b) Pascal <== never touched the stuff
(c) Fortran <== of course - every engineer learned Fortran
(d) Cobol <== why I took COBOL then still astounds me today
(e) Lisp <== no but many interpreted software interfaces are similar
(f) C <== no but we used to have to run Makefiles more often then than now >(g) Logo <== never even heard of it
(h) Snobol <== no, thank God
(i) PL/I <== yes, of course - but we called it PL/1 (Pea El One)
(j) Assembly Language <== everyone learned the IBM Assembly language
(k) Shell scripting <== didn't we all learn c-shell & tsh
I used to love Forest Mims' simplicity of TTL code where everybody had the >yellow Texas Instruments books next to the blue National Semiconductor books >for digital and analog chips of the early days of ICs.
The problem is that a noob can't sensibly write anything in assembler
for a modern 64-bit chip.
Whether or not you care to admit it, LOTS
of things have changed since the old days. You say you learned IBM
assembler (700? 360?) ... if you remember any of it that is a good
start, but a modern x86 has a vastly larger instruction set.
You really do need to start with something simpler and work up. There
are plenty of good guides for 8086 assembler. Set up a virtual
machine running DOS or an old version of Windows[*] and learn on that.
Once you get reasonably good at 8086, then tackle 80386.
The problem is that a noob can't sensibly write anything in assembler
for a modern 64-bit chip.
Whether or not you care to admit it, LOTS
of things have changed since the old days.
You say you learned IBM assembler (700? 360?) ...
if you remember any of it that is a good
start, but a modern x86 has a vastly larger instruction set.
https://stefanheule.com/blog/how-many-x86-64-instructions-are-there-anyway/ You really do need to start with something simpler and work up.
There are plenty of good guides for 8086 assembler. Set up a virtual
machine running DOS or an old version of Windows[*] and learn on that.
Once you get reasonably good at 8086, then tackle 80386.
[*] XP or earlier (at least 32-bit versions) will run 16-bit code, and
much of what you learn about using the Windows API will carry forward. Argument widths have changed and new functions have been introduced,
but nearly all of the functions that were available in Windows 3 circa
1990 are still in Windows 10 today.
Nothing has really changed even when everything seems to have changed.
Wrong. The biggest change is that modern operating systems require
programs be run in protected mode. Moreover, as x86 moved from 16 to
32 to 64 bit, certain architecture changes have forced newer programs
to be structured differently.
What school did you go to? Labs always have been about screwing up
and discovering why you DIDN'T get the right result. If you were
lucky you got to repeat the labs until you finally did them correctly.
So, except for the one assembler, you only learned relatively high
level languages. Some C would have been helpful.
I used to love Forest Mims' simplicity of TTL code where everybody had the >>yellow Texas Instruments books next to the blue National Semiconductor books >>for digital and analog chips of the early days of ICs.
Then your head will explode when you look at x86-64 and the prospect
of interfacing with any modern operating system.
I teach about 70 noobs every year to write something in assembler for
a modern 64-bit chip, so I obviously disagree.
There may be fewer good guides; but using a search engine ("assembler guide"), I find on the first page two IA-32 guides, one AMD64 guide,
some for other architectures, none for 8086.
Given that, what do you think of this "Understanding Windows x64 Assembly? >https://sonictk.github.io/asm_tutorial/
And, what do you think of these Windows x64 assembly language guides? >https://sonictk.github.io/asm_tutorial/#additionalresources
Yet the guy (sonictk) claims the starting environment only needs to have:
(1) A Windows 10 PC (x64)
(2) He claims we need Emacs https://github.com/sonictk/lightweight-emacs
But, due to muscle memory, I'd vastly prefer editing in GVim (aka "vi")
https://www.vim.org//download.php/#pc
I think it's crazy to need "Visual Studio" just to assemble on a Windows x64 >PC
Anton Ertl wrote:
I teach about 70 noobs every year to write something in assembler for
a modern 64-bit chip, so I obviously disagree.
At some point, rather soon, I'm going to have to give up on asking and just start following _somebody's_ tutorial on my X64 Windows 10 desktop.
Given that, what do you think of this "Understanding Windows x64 Assembly? https://sonictk.github.io/asm_tutorial/
Anyway, I'll write my own tutorial - but it's crazy that I have to do that. All I'm asking in this post is if the sonictk site seems reasonable to you.
Given that, what do you think of this "Understanding Windows x64 Assembly? >> https://sonictk.github.io/asm_tutorial/
now there you got your win64 hello world tutorial :)
Anyway, I'll write my own tutorial - but it's crazy that I have to do that. >> All I'm asking in this post is if the sonictk site seems reasonable to you.
good luck.
Given that, what do you think of this "Understanding Windows x64 Assembly? >>https://sonictk.github.io/asm_tutorial/
Whether it works as a tutorial, is probably
up to you to determine; I have no checklist for assembly tutorials.
wolfgang kern wrote:
Given that, what do you think of this "Understanding Windows x64 Assembly? >>> https://sonictk.github.io/asm_tutorial/
now there you got your win64 hello world tutorial :)
We already had a hello world working in this thread on January 18th.
Message-ID: <ru342u$p8t$1@gioia.aioe.org>
But, as others may recall, it didn't use Microsoft MASM but MASM32 from
http://www.masm32.com/
Which came with its own linker
C:\mypath\masm32\bin\ml.exe /c /Zd /coff hello.asm
C:\mypath\masm32\bin\Link /SUBSYSTEM:CONSOLE hello.obj
Which worked fine following the steps in this hello world tutorial
https://doc.lagout.org/operating%20system%20/Windows/winasmtut.pdf
But that used "MASM32" and not Microsoft MASM (nor NASM).
Nobody responded when I had asked if that's a decent assembler & linker.
For example, can we use _that_ linker instead of the MS Visual C link.exe?
The linker is the important step as it has to work with the assembler.
*Can someone clarify where we can get a decent linker for object modules?*
Success (of sorts), at last (I think) for the 10-step hello world
tutorial.
Following the previous instructions from "Tavis Ormandy" to check the "Individual components" Visual Studio Community 2019 checkbox for
"MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.28)", I finally have
the necessary Microsoft "link.exe" linker installed (I think).
Here's where I am while trying to faithfully follow the tutorial at https://sonictk.github.io/asm_tutorial/
(1) Onto my Win10 x64 20H2 computer, I install the latest Nasm from
https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe
(2) I then install the latest Microsoft link.exe from
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16
(3) After installing Nasm, I check the version of nasm on Windows 10 x64
nasm -v
NASM version 2.15.05 compiled on Aug 28 2020
(4) Then I download the "hello_world.asm" text file to my Win10 x64 system
https://github.com/sonictk/asm_tutorial/blob/master/hello_world.asm
(5) I then assemble that asm file into a hello_world.obj object module
nasm -f win64 -o hello_world.obj hello_world.asm
(6) Then I try the Microsoft Visual Studio Community 2019 linker
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64\link.exe" hello_world.obj /subsystem:console /entry:main /out:hello_world_basic.exe
(7) Drat. Errors result even when I follow the tutorial exactly.
Microsoft (R) Incremental Linker Version 14.28.29336.0
Copyright (C) Microsoft Corporation. All rights reserved.
hello_world.obj : error LNK2001: unresolved external symbol
ExitProcess
hello_world_basic.exe : fatal error LNK1120: 1 unresolved externals
(8) Given "ExitProcess" is the last line, I commented it out & tried
again,
resulting in no errors and the creation of "hello_world_basic.exe"
(9) Yet, when I ran "hello_world_basic.exe" on the Win10 x64 command line
(or in the Win10 x64 File Explorer GUI), it didn't display the
expected
output (it actually displayed nothing - but no errors came out
either).
(10) I tried "ExitProcess@4" as per this stackoverflow question
https://stackoverflow.com/questions/4123013/error-lnk2001-unresolved-external-symbol-messagebox
But what I simply need now is an assembly language program that works
as the point, at the point of a "hello world" is NOT to be debugging
bad assembly language coding (debugging programs should come way
later).
https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk2001?view=msvc-160
https://social.msdn.microsoft.com/Forums/vstudio/en-US/71a80e19-4e6a-41fe-b1db-26e331da474d/linking-errors-lnk2001-unresolved-external-symbol-when-compiled-by-nasm
http://www.masmforum.com/board/index.php?topic=15872;prev_next=next
So the hello world is, finally, a bit closer to working with the latest
Nasm
& the latest Visual Studio Community 2019, but the syntax in the hello
world
example is, somehow, still a bit wrong for running at the Windows 10 x64
CLI.
advise for a good beginner windoze assembler?
advise for a good beginner windoze assembler?
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 24:29:20 |
Calls: | 6,646 |
Calls today: | 1 |
Files: | 12,193 |
Messages: | 5,327,716 |