Automotive Deals BOTYSFKT Shop Women's Clothing Learn more Discover it $5 Albums Fire TV Stick Handmade school supplies Shop-by-Room Amazon Cash Back Offer harmonquest_s1 harmonquest_s1 harmonquest_s1  Amazon Echo  Echo Dot  Amazon Tap  Echo Dot  Amazon Tap  Amazon Echo Starting at $49.99 All-New Kindle Oasis STEM Water Sports

Customer Reviews

4.3 out of 5 stars
32
Format: Paperback|Change
Price:$33.64+ Free shipping with Amazon Prime
Your rating(Clear)Rate this item


There was a problem filtering reviews right now. Please try again later.

on May 12, 2006
About the syntax used - yes,through all the book only the AT&T assembly syntax is used. The obvious reason is that most popular compiler on Linux is GCC, which has GAS (GNU Assembler) as the behind the scenes assembler invoked by GCC every time you compile your code. And native to GAS is the AT&T syntax and not the Intel syntax, which is deemed more readable.

Now to the book contents. As there is no previous knowledge of assembly assumed, the reader is first given a quite detailed view of the Intel processors architecture, including coverage of modern features like the Netburst design, present in modern Pentium series processors.Then basics of the tools of the trade are presented.

With this preliminary knowledge the reader is prepared to begin the major part of the book - the assembly language itself.

The learning curve is flattened as much as possible by the author, guiding us through all the major domains of assembly programming - working with processor registers, stack and heap manipulation, floating point arithmetic,handling various data types (strings, integers, floating point numbers) and more.

All the chapters contain stand alone code examples ready to be compiled and run. Most of the example code is 30-40 lines long and relates to the particular point being explained, i.e. there's no intentional cross-reference between code samples in different chapters.

Starting at the chapter 12, "Linux System Calls", begins what this book was written for - how to apply gathered so far knowledge to the real world. This includes: inline assembly in C/C++ code, programs combining C/C++ source code

and assembly functions, writing static/dynamic libraries in assembly that can be used by any high-level language (here C/C++), optimization tips and tricks, how to work with files.

Finally, the last chapter deals with advanced features like MMX, SSE, and SSE2 instructions .

So, to conclude - It has all a

programmer never exposed to assembly needs to learn to start writing fully functional stand alone or integrated into high-level language assembly code . The author covers all fundamentals of assembly programming and he does it in a plain and accessible language.

However there's something you should be aware of - if you're (like me) a fan of the Wrox "Professional.." series,- don't misunderstand the word in this context. It is only an introductory text on assembly,and it will not bring you to the level of professional assembly programmer, yet.
11 comment| 43 people found this helpful. Was this review helpful to you?YesNoReport abuse
on October 9, 2006
I recently had to port an assembly language program written in Microsoft assembly language (MASM) to Linux (GNU AS). This book saved alot of time by helping me to: (1) understand the differences between MASM & GNU AS, (2) efficiently compile a mixture of "C", inline assembly and pure assembly, and (3) use gdb to debug my port. Each chapter covers a topic in depth with numerous examples that include step-by-step walk throughs with gdb. Anyone who's interested in programming in assembly language on Linux will find this book a very useful reference and a great value. Highly recommended!
0Comment| 19 people found this helpful. Was this review helpful to you?YesNoReport abuse
on February 11, 2005
Be aware that this book is very Intel oriented, specifically the 32 bit Intel Pentium family sometimes called X86 or more officially IA-32 (Intel Architecture - 32 Bit). If you're working on a Motorola, Sparc or any other architectured machine, go buy a different book.

Having said that, within the Intel world, this book is an excellent introduction on how the IA-32 architecture has developed over time. It is a good introduction to the basic concepts of assembly language programming. It's a fairly high level book, aimed at the programmer who works in C++ or something like that who might want to optimize his code or at least understand what the compiler did to him.

To go with the book, you probably want to go to the Intel web site and download the Software Developer Manuals for the processor you are using (it's about 12 meg for the Pentium 4) or you can order them on a CD. But start with this book, it provides a basis, a foundation that will make the Intel manuals a lot easier to get around.

Good book to start out with assemblers.
33 comments| 39 people found this helpful. Was this review helpful to you?YesNoReport abuse
on February 23, 2006
I mean, if you are a computer science student, there's plenty of voluminous tomes on processor architecture, algorithms and Assembly language. But I'm not a student; I do recognise the value of understanding in detail the nuts and bolts of how processors work, but I don't need to know that right now (and I suspect that I just might not have enough grey matter to ever fully comprehend it); I don't want to learn yet another hybridised Assembly/3GL language, I already know C, and (to paraphrase the furry blue guy) that's "good enough for me"; I want to see examples I can apply immediately to my day job; and I would like to learn more about the development environment, too.

Finally, it appears that my long search is over. This book is an excellent "how-to" for experienced programmers who want to enhance their applications with inline Assembly, for occasional coders who need access to specific machine instructions (why, I have no idea, but I'm sure you're out there somewhere), and for security analysts who need some assistance understanding shellcode. However, I think this book will be of enormous benefit for newcomers to programming and Assembly, as it shows in great detail how to develop and debug Assembly programs using the GNU gcc tools. It's one thing to learn instructions and algorithms; it's another entirely to go from an empty source file to a debugged and linked executable.

Don't be discouraged if you're strictly Microsoft; there are plenty of easy-to-use Linux distributions readily available for your pleasure. You can even remain true to Redmond by using a live CD distribution, such as Knoppix, to practise on, without ever having to install one of these nasty open source operating systems. Linux/BSD afficionados, of course, should feel right at home here.
0Comment| 16 people found this helpful. Was this review helpful to you?YesNoReport abuse
on January 28, 2007
I'd just ditched windows in favor of an Ubuntu system and I wanted to do some assembly language programming. This book was exactly the ticket.

The book explores a comprehensive introduction to assembly on Linux. Another reviewer objected to the word "Professional" in the title. Admittedly, this book is not an advanced guide, being aimed instead at those just getting into assembly. But the book is not for novice programmers, per se. The tutorial begins with a pretty quick overview of assembly language and its place in the programming milieu, then gives some information on the IA-32 platform and architecture. After that, you get an introduction to the tools you'll be using in the book, and then you're programming. It's fast, but not too fast and from that it's pretty obvious that the "Professional" is referring not to techniques or subject matter, but to the target audience -- professionals or relatively experienced programmers getting into practical assembly for the first time.

For me, I've found the book to be absolutely perfect: competently written, exploring the toolset I find most interesting, and promoting free software and Linux. Moreover, the knowledge I'm gleaning will be practically useful, I believe, an any OS running on the IA-32 platform. Windows uses different tools, and the opcode syntax is different, but it's not night and day -- more like late morning/early afternoon. The processor concepts and knowledge transfer cleanly.

If you're not running Linux or have access to a Unix-like system (Cygwin on Windows would probably do fine) then this book isn't for you. Also, if processor concepts are absolutely novel to you -- e.g., you think a register is something used to make change at a checkout line -- or you're still learning about for-loops or think HTML pages are "programs", then this book won't make you happy.

But if you want to delve into assembly quickly and you like working with Linux or Unix, this is your ticket. Highly recommended.
0Comment| 14 people found this helpful. Was this review helpful to you?YesNoReport abuse
on December 10, 2005
I have to take exception with the first 7 reviewers; while this book does have a few redeeming features, it is not a professional level assembly language book. First of all, if you are looking for a professional level assembly language book for operating systems other than Linux or Unix, this book is not for you. It uses AT&T syntax which is different from Intel syntax. If you are experienced, you will have little difficulty translating from one syntax to the other. If you are wanting to learn assembly language for MS OS's, this is not your book.

Blum uses Linux as his development plateform which sounds promising for those of us interested in learning how to use assembly language for Linux. However, he puts off using system calls until chapter 12. He shows one example of printing text on the screen then moves to using printf from the C library. The lack of coverage on system calls puts this book into the barely useful category.

What is useful is his coverage on the major instructions. And, you will get a good workout using the gdb debugger, as he depends upon that for input/output rather than show you how to write basic input/output routines. Linking with other libraries is also useful.

Since there are few books on assembly language for Linux, it is doubly disappointing in how far this book misses the mark. Every seasoned assembly language programmer knows that having a good reference to the OS's basic routines is fundamental. If I wanted to use C functions, I would write in C.
0Comment| 42 people found this helpful. Was this review helpful to you?YesNoReport abuse
The AT&T assembly syntax is what the linux development toolkit uses, so if you plan to write assembly on that platform, this book will help you quite a bit.

The word "professional" in the title is a great misnomer -- this is a beginner's book (nothing wrong with that per se, though it'd be nice if the publisher didn't try to increase sales by misrepresenting the book's depth).

If you write regular Intel assembly (MOV EAX, EDX sorta thing) you don't need this book. If you work on Windows you don't need this book.

I'm giving it five stars on the assumption that it'll go to the right reader. The right reader here is either an assembly-language neophyte working on linux OR someone who knows Intel assembly wanting a gentle intro into the AT&T assembly syntax.

The book is written clearly and concisely; I liked it, and -- again, to the right reader -- I recommend it w/o reservations.
0Comment| 9 people found this helpful. Was this review helpful to you?YesNoReport abuse
on December 2, 2005
I haven't seen any other book - anywhere - with this level of coverage for the ins/outs of dealing with assembly language programming in contemporary Linux environments.

Of particular interest is:

a) Good, high-level introduction to IA32 instruction set

b) How to call standard library functions as easily as programming in C

c) How to bypass the standard library and make direct 0x80 syscalls instead.

d) Shared vs dynamic linking

e) In-depth coverage of various methods of writing in-line assembly from high-level C code

f) Tons of invaluable tips and insights.

If you're doing ANY assembly work on Linux - then buy this book.
0Comment| 9 people found this helpful. Was this review helpful to you?YesNoReport abuse
on February 11, 2005
This book is the best book ever written in introductory assembly language book focusing on linux environment.

The author introduces assembly language on Unix environment using GNU binutils gradually over chapters and leads any novice to understand whole concept of using assembly language easily. Assembly language by nature requires lots of knowledge about hardware (processors) but author's focus on assembly language itself kept properly throughout the book without jumping here an there as the other books on same topic.

As he mentioned in introduction, one of the goals of this book is to help understand programs written in HLA (High Level Language) like C/C++ deeply and find out compiler's inefficiency and correct them to increase performance or provide new functionality. I think his goal is well achieved throughout the book.

If you're working on Linux kernel, this is "MUST READ" book since it uses gas and AT&T style syntax so that it can help a lot to understand and write low-level (boot code) stuffs or in-line assembly to increase performance in Linux kernel.

Even though this book is written only for x86, the same concept can be applied without difficulty to the other architecture. If you're working for the other architecture than x86, this book can still give you very fundamental basic about assembly language programming environment.
0Comment| 14 people found this helpful. Was this review helpful to you?YesNoReport abuse
on February 7, 2013
So, first, background so people know how I fit in. I'm a finance guy who has a CS background. Took Assembly a while ago...and promptly forgot. Learned programming on Pascal, but have since done a little with C, VB, and Python. It's not my day job...not by a long shot...but I have written some very elaborate and inventive solutions using code that helps me and others in my day job. I wanted to learn (or re-learn) some Assembly which could prove helpful in R/E and in general learning about exploits and the like. It may help in my career if I want to move into a role managing technical teams, or it may not (oddly enough, all the programmers I work with respect me as a "suit" that knows what they do). At the end of the day, it's really about playing the RPG of life...growing stats.

So, this book would be elementary if I were an engineer writing code all day...but I am not. I find this book to be challenging...but for someone like me it works. My real objective is to be able to read and understand Assembly...not really to use it or write it. I think this book fits the bill...but it even may be more detailed than I need. To just about anyone else in my profession...it would be too hardcore to even begin to understand, but I've got a lot of the fundamentals down as I can read and understand code I encounter, and can even (ineffectively) write if my life depended on it.

I'm loving the book so far.
0Comment| 2 people found this helpful. Was this review helpful to you?YesNoReport abuse