I am reading the book "Professional Assembly Language", with sample code written for Intel IA-32 processors. Assembler used is GNU Assembler. Where can I find this Assembly reference? For example, writing Assembly for Windows, I can find the reference in Intel WEB site. What about Linux and GNU Assembler?
Assembler only depends on the CPU, not the OS. So the documents on the Intel side are what you're looking for.
If you want to call OS functions, you must read the compiler ABI documents (which explain how to pass arguments and how the return value is handled). Plus you need a list of functions which you can find in the man pages of your Linux box.
To get you started, I suggest to compile a program in high-level language like C into assembler to see what happens. Just invoke gcc -S file.c
instead of gcc -c file.c
.
Wikipedia references this: http://sourceware.org/binutils/docs-2.20/as/
Here: http://sourceware.org/binutils/docs/as/index.html
from here: http://www.gnu.org/manual/manual.html
If you are working with a book on Intel IA 32 then you should try grabbing the instruction set manuals from Intel's site http://developer.intel.com/products/processor/manuals/index.htm I think you will this as a complete reference for instruction .
Also the assembly language reference for linux and windows will be same if they are installed on the same architecture , as assembly language depends upon the architecture.Use intels instruction set reference if you are using an intel CPU.
For the syntax of your assembler well you should check the manual accompanying it for gnu