I have been planning on learning Assembly Language for some time now. I want to get serious now and start learning. I have been programming in C++ for the past 1 - 2 years but I dont ever have fun while doing it. I wanted to know how I can learn Assembly Language ? Folllowed by Assembly Language, I want to learn win32asm. What tutorials or books do you suggest I read in order to get to an expert level in assembly language? I know that it will take a long time to understand and learn it. Any help would be appreciated. Thank you!
Posted on 2001-08-31 01:03:24 by DeSyNc
This is what I recommend:

1. learn binary and hex and such, learn how to convert them.
2. read the tutorials @ http://exagone.cjb.net
3. go through that until you think you got it down.
4. then proceed to read the win32asm tutorials at http://win32asm.cjb.net
Posted on 2001-08-31 01:18:48 by vcv

This is what I recommend:

1. learn binary and hex and such, learn how to convert them.
2. read the tutorials @ http://exagone.cjb.net
3. go through that until you think you got it down.
4. then proceed to read the win32asm tutorials at http://win32asm.cjb.net



no way it could be that easy :P :alright:
Posted on 2001-08-31 01:20:49 by DeSyNc
no way it could be that easy :P

haha! I guess I forgot to mention this could take anywhere from a few months to a few years to get through :P
Posted on 2001-08-31 01:25:54 by vcv
That probably isnt my path then :)
Posted on 2001-08-31 01:28:21 by DeSyNc
It's not that hard to pick at assembly and become more-or-less a newbie like me, but it will take you a month or two. I'm sure your C++ knowledge will help. Basically if you think logically it could only take a month or so.

What vcv recommended is actually some of the best. However, I never went through the Win32asm tuts, and I'm glad too. I notice how much local and excessive use of procs hurts program speed. If you want to really get confused at first, but then really know the language, I recommend programming in SpAsm or FASM for a month or so before using MASM. Once you know how the computer works, it's much easier to do what you want :)
Posted on 2001-08-31 01:36:27 by Kenny
I started with Turbo C, minimal VB5, and 2 univerity courses of Java... (not bad courses)... Plus eons of experience tinkering with commie 64 basic...

I started in January of this year, and at this point i feel quite confident of how to do things in ASM.. (still havent learned the registry, networking, and VxD's.. but everything in between i feel quite confident in)..

So dont be all too discouraged... It has a slow start, but the learning curve picks up, and surpringly it get "fun" to learn new tricks...

Best of luck
:alright:
NaN
Posted on 2001-08-31 03:23:53 by NaN
During my summer break when I was 14, my cousin gave me IBM PC ASSEMBLER LANGUAGE AND PROGRAMMING. I learned assembler in less than 2 weeks using debug only. The only down side is that my head hurt after a 5 hours of hard concentration. When I flew back from my cousins I started using MASM 4.0.
Posted on 2001-09-02 00:57:51 by eet_1024
Maybe you can get lucky like me.

I woke up one morning, found win32asm.cjb.net, downloaded the package, and had converted a C program I had written (dialogs and all) in under 20 minutes, never touching ASM before that in my life.

It was a surprise to me.. and Ive loved win32ASM ever since :)


Torch
Posted on 2001-09-02 20:24:31 by Torch
I think it's alot easier to learn assembly language today, than it was in the 16-bit days. Things like memory segmentation and using the segment registers can be a bear for a newbie to get a handle on. Today a 32-bit program doesn't know what segemnt registers are, with the flat memory model. In the old days you needed to know about interrupts, since they were used to talk to DOS. Today the API does everything for you,.and a "normal" Win program never uses interrupts..I think it's important to understand what these things do, but you don't really need them for Win32 programming.

Obviously you need to know the "user" instruction set. Art of Assembly, and the Programmer Reference manuals from Intel, both have detailed instruction references. The MASM32 package also has an instruction ref. Learn about the registers and operand sizes. Concentrate on the different addressing modes.

Then I'ld say spend some time with the ML documentation. You'll need to know what PROCs and EQUates and STRUCTures are. You'll need to know how to define data with DB DW and DD. Some people don't like using the HLL features of ML, but I think INVOKE is the best thing since sliced bread, when it comes to API programming. .IF / .ELSEIF / .ENDIF make it easier to program your message handling proc. This should be easy for you with a C background.

That should pretty much cover the assembly part. The secret to Windows programming is the API. Get yourself a copy of WIN32.HLP. Its a little out-dated but good enough to get started. The on-line MSDN library has up-to-date API info. While you're at MSDN check out resource (.RC) files. They make it much easier to get going with menus, dialog boxes and such. You might want to find a resource editor. It makes the "math" a little easier. but you don't really need it. You can order the MSDN library on CD ($17 I think) or DVD. It's nice to have a local copy. Since you already know C you may be interested in the "Win32 programming API bible" book from the Wait group. It comes with a ton of samples on CD.

I assume you've already downloaded the MASM32 package from hutch or Iczelion. It's got all the tools you need to get started, except a good API reference. Take a look at some of the sample programs. Check out some of Iczelion's tuts here. You may find it easier than you think. :)
Posted on 2001-09-03 01:00:34 by S/390