Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Guide to assembly language programming in Linux
Dandamudi S., Springer-Verlag New York, Inc., Secaucus, NJ, 2005. 552 pp. Type: Book (9780387258973)
Date Reviewed: Dec 22 2005

Many books on assembly language programming for Intel machines appear on the bookshelves of any library, a situation easily explained by the success of the IA-32 architecture and its availability. Assembly language programming deals with registers, memory locations, and arithmetic or logic operations in the context of a particular processor. However, in order to use the input/output (I/O) subsystem, the programmer should deal with the particularities of the I/O hardware connected to the processor. Therefore, all these books face a similar problem: how to access the I/O without showing all of the details to the reader. Two different solutions have arisen in the last few years. The first one is to develop a special library with all of the services a programmer may need, thus hiding the I/O details, and distribute it together with the book. This approach has been successfully used, for example, in Hyde’s excellent book [1]. The second opti!on is to show and use the I/O routines of a particular operating system, known as system calls. A good example of how such an approach should be implemented is the work by Blum [2], in which Linux is the operating system used.

Given this situation, readers may expect that a book called Guide to assembly language programming in Linux will not only show the IA-32 architecture, but also describe extensively the Linux system calls and the intricacies of programming for the Linux environment. Unfortunately, this is not the case for this book. The book is indeed a good introduction to assembly language programming, and justifies its title by giving some installation and basic instructions for the Fedora 3 distribution of Linux (included on a CD). However, the in-depth coverage of system calls a reader may look for is not present. In the book’s 22 chapters, only a few pages in chapter 20, “Protected-mode Interrupt Processing,” deal with software interrupts in the Linux environment.

The book is divided into six parts and includes some appendices. After a general introduction, the second part is devoted to computer organization, describing the fundamentals of digital design and memory organization. It also provides an overview of the IA-32 architecture. The third part of the book describes how to install and run the Linux distribution that comes with the book. No special considerations about assembly language programming are given here. Instead, the intention is to introduce Linux to users with no previous contact with Unix systems. The fourth part is devoted to the software tools needed to run assembly language programs, namely, the assembler (NASM) and the debugger provided by GNU. The last two parts of the book cover the IA-32 assembly language, with only general comments about its relationship with the Linux environment (in chapter 20).

The book is well written and well edited, and is a good starting point for learning assembly language programming. In fact, this book can be effectively used in a basic course on computer organization with the IA-32 architecture as a working example. However, this book is not for experienced programmers who want to learn the peculiarities of assembly language programming in Linux.

Reviewer:  Diego R. Llanos Review #: CR132195 (0611-1105)
1) Hyde, R. The art of assembly language. No Starch Press, San Francisco, CA, 2003.
2) Blum, R.; , Professional assembly language (Programmer to Programmer). Wrox, New York, NY, 2005.
Bookmark and Share
 
Macro And Assembly Languages (D.3.2 ... )
 
 
Instruction Set Design (C.0 ... )
 
 
Linux (D.4.0 ... )
 
 
RISC/ CISC, VLIW Architectures (C.1.1 ... )
 
 
Single Data Stream Architectures (C.1.1 )
 
 
General (C.0 )
 
Would you recommend this review?
yes
no
Other reviews under "Macro And Assembly Languages": Date
Assembler for COBOL programmers: MVS, VM
Murphy H., McGraw-Hill, Inc., New York, NY, 1991. Type: Book (9780070441293)
Dec 1 1991
High-level programmer’s guide to the 68000
McCabe F., Prentice Hall International (UK) Ltd., Hertfordshire, UK, 1992. Type: Book (9780133880342)
Oct 1 1992
Computer organization and assembly language programming for the VAX
Schneider G., Davis R., Mertz T., John Wiley & Sons, Inc., New York, NY, 1987. Type: Book (9789780471838500)
Mar 1 1988
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy