PDA

View Full Version : Assembly Language Books? x86 Linux


jbernhardt
March 25th, 2007, 01:21 PM
Hey, I am fairly new to programming and am looking for some good free books for assembly language for the x86 Linux. I currently have one, but would like another to supplement it.

Wybiral
March 25th, 2007, 01:27 PM
Two chunks of text I can think of off the top of my head that should help you:

Programming from the Ground Up:
http://download.savannah.nongnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf

Intel 80386 Reference Programmer's Manual:
http://pdos.csail.mit.edu/6.828/2005/readings/i386/toc.htm

jbernhardt
March 25th, 2007, 01:38 PM
Thanks alot! The Programming from the Ground Up book looks very promising. I'll probably end up reading it a few times until I actually understand it though.

Wybiral
March 25th, 2007, 01:43 PM
It is a very good book. Also, the Intel manual is big and scary, but it's really nice to have at your disposal when you need to look up some picky details about something. It has some good explanations of how the processor does some of the things it does too.

Those two together should help a lot.

Game_Ender
March 26th, 2007, 01:36 AM
If you are fairly new to programming I would start with a higher level language like python or ruby so you can learn the basics: control stuctures, variables, arrays, functions, etc. Then learn how to do it all in C, then start diving into assembly. I found it much easier to understand assembly after knowing C and learning how each C construct (loops, ifs etc) translated into assembly code.

Wybiral
March 26th, 2007, 11:46 AM
If you are fairly new to programming I would start with a higher level language like python or ruby so you can learn the basics: control stuctures, variables, arrays, functions, etc. Then learn how to do it all in C, then start diving into assembly. I found it much easier to understand assembly after knowing C and learning how each C construct (loops, ifs etc) translated into assembly code.

Thats a matter of opinion really... Some people think it's best to start at a lower level language like assembly so you will already know what's going on when you switch to a higher level language.

This approach makes sense IMO since I've noticed that most people who learn a HLL tend to stay at a HLL and never learn the real workings of the machine. Obviously you can't write as efficient, optimized code if you don't know what goes on between that code and the machine. So starting at the machine makes sense. I think that's what the book "Programming from the Ground Up" that I posted above is trying to convey.

I think the biggest difference between the two approaches is patience. Learning assembly is not going to bring about as quick of results as something like python that has a bunch of routines built into the language itself. But assembly is probably going to bring about faster results in terms of understanding of how programs are executed and how the CPU works.

So really... It depends on the person.

psychicist
March 26th, 2007, 01:48 PM
I have just finished an introductory course on x86 assembly programming at university. I have the manual and the finished assignments here. At first I thought it would be difficult but it really is pretty easy.

If you want I can mail them to you.

Wybiral
March 26th, 2007, 01:54 PM
I have just finished an introductory course on x86 assembly programming at university. I have the manual and the finished assignments here. At first I thought it would be difficult but it really is pretty easy.

If you want I can mail them to you.

I'm actually pretty interested in this... If you have the time... my email is: wybiral at aol dot com

<mawe>
March 26th, 2007, 03:51 PM
I'm also interested :) It would be great if you could also mail them to me: mweihs at gmx dot at

bradford72
March 26th, 2007, 11:45 PM
yeah, YEAH, yeah! please send 'em to me too!....bradford72 at gmail dot com

Houman
March 27th, 2007, 08:54 AM
hi there;

I just wanted to mention this book: "Guide to Assembly Language Programming in Linux". It has a lot of information some of it unnecessary, it even gives a review of digital logic,

Also its written by a very good professor at Carleton university (Canada).

regards

Houman