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.
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
>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.
>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.
 Unless you want to encode instructions directly with a hex editor...
>what did you mean by " 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 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 ;)).
 For future reference, when trying to understand the mapping of x86 instructions, it's helpful to think of them in octal.