Hi, I want to learn assembly and have looked at tutorials I found on google. It's really freaking complicated, so do any of you know of any good tutorials on assembly? I'm on Windows XP 32 bit with an Intel CPU.

I started out a few days ago, and one of the first things I did was follow Narue's guide (a member here on DaniWeb). Here's the PDF of it:
http://www.daniweb.com/forums/attachment.php?attachmentid=1765&d=1142611276

It uses NASM and GCC (for Windows, use can use the MinGW binaries for that).

Narue's little guide was a good starting point for me for Assembly, and it definitely helped a lot with getting the basics down.

P.S. once you download NASM and install MinGW, an easy way to make the commands 'gcc' and 'nasm' function in the DOS cmd prompt as sort of global commands, you can add the folders containing 'nasm.exe' and 'gcc.exe' into your Windows PATH variable.

Well the best book as far as i have know is
Assembly language step by step - jeff duntemann
he teaches you from the scratch.
well after reading the whole book if u still want to develop more insight into it , then i guess u can go in for
Mastering Turbo Assembler by - Tom Swan

these r the ones i liked the most.

>It's really freaking complicated
Well, duh! ;) It's not as complicated as some people (who haven't learned it and base their opinions on anecdotes) would have you believe, but programming is hard, and assembly is programming without any sugar coating[1].

>so do any of you know of any good tutorials on assembly?
Good is subjective. I wrote one that I thought was a good starting point (as mentioned already), but your first approach is the one I would recommend: search google and read everything you can get your hands on. Then try out a bunch of different assemblers. NASM and FASM are good traditionalist assemblers. HLA and RosAsm are more unique and better suited to getting your feet wet without having to figure out a lot of the prerequisites for something more traditional.

And above all, ask about anything and everything you don't understand.

[1] Unless you want to encode instructions directly with a hex editor...

this may help you

"I'm on Windows XP 32 bit with an Intel CPU. "

no it wont, because that book is clearly for the MIPS architechture not x86, which is what the OP needs.

Thanks. I'm going to read Narue's guide and see where that brings me. Also, what did you mean by "[1] Unless you want to encode instructions directly with a hex editor... ", Narue?

Nice tutorial Narue. Thanks! That really helped me.

>what did you mean by "[1] Unless you want to encode
>instructions directly with a hex editor... ", Narue?
Assembly is just another programming language, and programming languages are symbolic representations for something far less convenient. If you understand the executable file format and the binary[1] representation of your program's instructions, you can program in the machine code itself using a hex editor (because it's a real pain in Notepad ;)).

[1] For future reference, when trying to understand the mapping of x86 instructions, it's helpful to think of them in octal.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.