Hey guys :=)

Well I would like to learn some asm, I want to get into it, something that might be simple to start out in
if there is such a thing. My math skills suck so hope that's not really a problem. And I'm really lost ? Where is a real simple easy place to start out ? I just downloaded Iczelions Tut Series, but then that goes into using
win32asm.exe that I don't have a clue about, and then in the Win32 directory that then talks about if you don't understand Win32 to then read a good introductory textbook about Win32, well as you can see here I'm like way lost hehe don't know where to start? What is really something recommened around here like
ASM For Dummies hehe if there is such a thing, I really need something straight forward and simple. THANKS
Posted on 2002-07-20 05:41:39 by DasFox
Hi,

erm.. usually iczelion's tuts are the best start!

I just downloaded Iczelions Tut Series, but then that goes into using win32asm.exe that I don't have a clue about

erm, i don't know exactly what you mean with that, but i think you mean using the compiler?? :confused: you need the compiler to "transform" your sources into exe-files.
perhaps you should read the tutorials more carefully, one after one, try every example, follow the instructions, etc.

actually there are some other good tutorials around:
MadWizards Page
2 simple tutorials on my page

etc...

bye
Posted on 2002-07-20 07:10:15 by NOP-erator
Thanks for the reply NOP-erator, yeah in 'Iczelion's Tutorial Series' if you had a look at it in, under
'Win32 Assembly' Win32 Assembly Tutorial 1: The Basic, this is what is mentioned at the top of that section:

This tutorial assumes that the reader knows how to use MASM. If you're not familiar with MASM, download win32asm.exe and study the text inside the package before going on with the tutorial. Good. You're now ready. Let's go!

Then in the 'README' for the the Win32asm.exe it goes into saying this:


Win32Proto is an example program built using MASM.

This Win32 prototype program is an example of what can be done
programming to the Win32 API using assembly language. Understanding
what it does assumes that you have some good base knowledge and
understanding of Win32 programming.
If you do not, you might want to study a good introductory textbook
about Win32 (Petzold's "Programming Windows 95" comes to mind.)

Now this is where I'm back to square 1 so to speak hehe, its talking about having an understanding of Win32 programming, to use this which I don't. So you see my situation. I get a Tut that says to get a program, that then says to get some knowledege about that, then to use it. LOL Yeah sure need to know how to use things, but I thought in this Tut it was going to show me all this, but guess not :/
Posted on 2002-07-20 08:30:40 by DasFox
DasFox,

programming in assembly, requires at least a basic knowledge of programming, expecially the Windows API if you want to programm for Windows.
If you don't know any programming language (thats what I understand from your post) you should better start with something easier like C/C++ or even VisualBasic. Programming in this languages provide you with the basics of programming. Starting with assembly as first programming language, is in my opinion a very bad choice.

Regards,
bAZiK
Posted on 2002-07-20 08:37:20 by bazik
Just to get you started once you have installed masm32 go into the \masm32 folder and open qeditor.exe. In this program you can open up a .asm file and goto project->build all to assemble the source.
Posted on 2002-07-20 10:14:47 by Kudos
:stupid:
i just started trying to learn ASM yesterday.
however, i think i got all the basic concepts secure.

Im using RadASM, /w masm. It makes my life a whole lot easier.
Posted on 2002-07-22 19:54:05 by Xyster
DasFox,

If you are an experienced programmer and have done work in Windows API functions as well as some assembler, then you are a good candidate to learn the current 32 bit assembler but unless you have this background, it will be very hard going.

What I would suggest to you is to learn a good low level compiler like C or basic or Pascal and when you can write reliable code with it, then make the shift to learning assembler.

Regards,

hutch@movsd.com
Posted on 2002-07-22 21:20:29 by hutch--
it would be easier if you have a programming experience like c or others but its not impossible to learn win32asm from scratch provided that you alreay know asm ...

DasFox
first you have to learn assembly then you have to go to win32asm which means programming windows with assembly ... if you know assembly then win32asm tuts will teach you how to use your assembly knowledge to call the functions that windows os have provided for you so you can then make a win32 program .... these functions are called APIs ...

so if you wana learn win32asm without any programming experience then first you have to learn assembly first ... go buy a book or read about assembly on the internet ... there is a wealth or resouces about assembly on the internet (just google for assembly or asm86) ... once you've read enough you'll find that all the other tuts about assembly are becomming the same ... if you reached that point then you can come back to Icz's tuts and start programming in the win32 environment ... and don't forget to come here for any questions you have ... you won't find a better forum that is so friendly with begginers ... so don't be shy to ask what you have here ...
good luck on your journy my friend ...

code1101
Posted on 2002-07-26 09:26:44 by code1101
What a load of b*l*cks...:rolleyes:
Anyone would think you're trying to scare the guy/gal(:grin: ) away.

Programming in assembly is no different than any other language and in fact it's potentially easier...
To get up and running here's what you do:

1) get the masm32 package
2) get RadASM

To begin with install both packages to their default paths.
There are several help files which you'll want to get opcodes.hlp,win32api.hlp

The opcodes file will tell you the about the various instructions.
win32api will tell you about the windows api.

Go through all tutorials you can find...
If you get stuck...try again
if your still stuck...post a question here

it's easy really...
good luck
Posted on 2002-07-26 09:57:29 by MArtial_Code
I am in total agreement. Assembly can be alot simpler than any other language if certain bariers are taken out.
The so called experts think that by making this language sound so MYSTERIOUS makes them look like a total GURU, well this is just a myth.
in fact I have found that if I ignore all of the controls and windows that are being created in the examples and just consentrate on the code that makes them do what I need them to do it is quite simple to learn this language.
I would not listen to people who tell you that it is going to be impossible or at least very very difficult to learn ASM if you havent programmed before, I had no idea of how to program in any other language when I started in ASM.
Now all of the others are very easy for me to do.

So good luck on your learning process!

bitfiddler:alright:
Posted on 2002-07-26 10:21:33 by bitfiddler
That's why you program is asm, so you can tell your friends, "Hey I program in assembly!" and they go "Ooooh! Aaaah!" ;)

...well until you begin rambling about opcodes and clock cycles, at which point your friends will call you a nerd and beat you up.
Posted on 2002-07-26 11:27:54 by iblis
You may find the "Those new to ..." articles on my web site helpful.
Also look at the help file which accompanies my assembler GoAsm (easier to use than MASM I believe).

see www.GoDevTool.com
Posted on 2002-07-26 13:33:29 by jorgon
Here is the simple basic point to learning assembly programming for windows:

You are trying to climb two mountains at the same time.

Mountain one is assembly itself: besides tiny things like the procedure macro, there is no build in functions to make your life easier. One little mistake and your program doesn't even build, let alone run. And the error messages can be completely meaningless.

Mountain two is windows. The windows API has thousands (tens of thousands?) Anyone ever see a count? And that's THIS weeks version, Redmond is always expanding the functionality.

There are people who do learn both together, suffer thru each step till each piece makes sense. I'm not that smart (or patient) by a long shot. Personally, I've done assembly level programming on several platforms (up to an IBM360 mainframe) long before I wrote one line of x86 assembly.

My main goal in learning x86 assembly was to have a simple (simple to ME!) way to access the Win32 API without using C/C++. I also had the advantage of having both Iczelions excellent tutorials on my screen and Petzold's book (Programming Windows 95) on my lap.

If someone is trying to learn Win32ASM together... I'd really advise them to wrtie a bunch of console apps or DLLs or something first... do whatever it takes to learn some basic assembly first, then move on to the Windows API.

That way you climb each mountain in turn.
Posted on 2002-07-27 09:19:33 by Ernie
I did some MFC proggies with Visual C++ 6 at school. Learned some Win32 API functions... nothing impressive. Stopped using VC6 for many months, and then...

...I discovered MASM32 ~2 month ago. I spend about 8hrs/week typing some tutorials, learning the hard way how Windows & x86 assembly works.

I like using masm instead of VC. At last, I know now the "real" thing about creating a Window (CreateWindowEx, RegisterClassEx, ...), things that were "hidden" ("automated" if you want) with VC. Makes things much more clear for me... even if I know that I'll return to VC when I'll be tired of typing all this stuff ;)

Personnaly, I think win32asm is not that hard to learn after all. Once you've got the overall syntax & concepts behind your assembly - in my case masm - you can slowly learn how to use the various functions in the Win32 API.

Note that I didn't touched yet DirectX and other things like OOP programming or COM-stuff. But I'm prepared: just look my avatar ;)
Posted on 2002-07-27 21:51:14 by Workaholic
Posted on 2002-07-29 04:59:59 by vikato
Start with Assembly language by all means.. it's not as hard as you think. Secondly, start to learn assembler under DOS (16-bit).. even though segment addressing is dying/dead..

Try and get hold of this book :

"Revolutionary Guide to Assembly Language" by Vitaly Maljugin published by Wrox press ISBN 1874416125 This is a *very* good book to learn assembly from under DOS
http://www.amazon.co.uk/exec/obidos/ASIN/1874416125/qid=1028153944/sr=1-1/ref=sr_1_16_1/026-0260896-3374824

Unfotunately i think it's out of print so try second hand book shops. Another book that is also excellent came from, wait for it.. Microsoft ! It actually came packeged with MASM 6.1 (remember the days of printed manuals) Unfortunately MS no longer offer the boxed MASM, BUT i have just checked and 'GreyMatter' are still offering the FULL MASM 6.11 on their website :
www.greymatter.co.uk
Just look under 'Software' on their site then select list by A-Z ,select 'M' and there it is right at the top of the list !

YES this is the BOXED version *WITH* printed manuals.. it is still available guys... but for a price..:rolleyes:

Borlands TASM may still be available here which costs less.. but I have never used it so don't know what docs it would come with.

Once u have got to grips with the basics of DOS assembler.. don't linger with it too long, then use Iczelion's win32 docs to get you onto win32.
Hope this helps

Codebug
Posted on 2002-07-31 17:38:10 by CodeBug
Unless you have lots of money, ditch the books.

Yes there are things were books are the best, but not for beginners.
There are so many beginner tutorials out there.

And most of the time they are better than books.

Learn a High-Level-Language first?
Yeah, sure. Why not. The more languages the better :D

Just dont think that assembly is that much harder than c/c++
Posted on 2002-07-31 17:44:35 by assant
Ernie hit the nail on the head. Climbing 2 mountains.

In my opinion, learning pointers is easier in assem than a HLL.



I tried doing 3 mountains. C++ + Direct X + Windows. Didn't work to well, so I went to assem to get rid of one of the mountains. Since I had assem experience.
Posted on 2002-07-31 20:58:49 by ThoughtCriminal
At last, I know now the "real" thing about creating a Window (CreateWindowEx, RegisterClassEx, ...)

I mean no offense, but calling API functions (CreateWindow, RegisterClass, etc) in Asm isn't any harder than doing it in an HLL like say, VB, or Python (yes you can do Win32API programming even in Python). My point is, there isn't much "asm" going on in calling API functions. But when you're familiar with an HLL and you start coding "useful" routines in Asm, you will miss the luxury of HLL constructs. Of course, you can implement those constructs in asm yourself, which is the main idea of "reinvent-the-wheel-and-have-fun" anyway :D
Posted on 2002-08-02 20:25:51 by pixelwise
pixelwise,
you are right :) A typical Win32 Application consits of

call API
do something with return value
call another API
etc.

There is nothing hard to do there. It starts to get
compilicated, when you need to modifie the return
value with pure assembly code, like making various
calculations, convertations or something like that ;)

my ?0.02.
Posted on 2002-08-03 02:19:39 by bazik