Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

The Art of Assembly Language 1st Edition

4.1 out of 5 stars 29 customer reviews
ISBN-13: 068-9145119725
ISBN-10: 1886411972
Why is ISBN important?
ISBN
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Have one to sell? Sell on Amazon
Buy used
$8.63
Condition: Used - Good
Condition: Used: Good
Comment: The CD is included or the Access Code is unused. The item shows wear from consistent use, but it remains in good condition and works perfectly. All pages and cover are intact (including the dust cover, if applicable). Spine may show signs of wear. Pages may include limited notes and highlighting. May include "From the library of" labels.
Access codes and supplements are not guaranteed with used items.
43 Used from $4.46
More Buying Choices
16 New from $74.73 43 Used from $4.46

There is a newer edition of this item:

Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Save Up to 90% on Textbooks Textbooks

Editorial Reviews

About the Author

Randall Hyde is the author of Write Great Code Volumes 1 and 2 (No Starch Press) and the co-author of MASM 6.0 Bible (The Waite Group). He has written for Dr. Dobb ™s Journal, Byte, and various professional journals. Hyde taught assembly language at the University of California, Riverside for over a decade.

NO_CONTENT_IN_FEATURE



Product Details

  • Paperback: 928 pages
  • Publisher: No Starch Press; 1 edition (September 2003)
  • Language: English
  • ISBN-10: 1886411972
  • ISBN-13: 978-1886411975
  • Product Dimensions: 7.4 x 1.8 x 9.2 inches
  • Shipping Weight: 3.3 pounds
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (29 customer reviews)
  • Amazon Best Sellers Rank: #1,185,118 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Top Customer Reviews

Format: Paperback
Well, after four years of reading these reviews, I thought I'd put in my two cents.

One recurring theme you see in all of these reviews is the following: if someone already knows assembly language, they tend to dislike the use of HLA as the teaching vehicle for learning assembly language. On the other hand, if they're a newcomer to assembly language, they tend to like the approach that Art of Assembly uses. Quite frankly, I wrote "Art of Assembly Language" (AoA) for this latter category, not for those who already know assembly language, so I am rather gratified by the response from those who are actually using AoA to learn assembly language.

When someone sets down to write a book on x86 assembly language, one of the first decisions they have to make is "which assembly language syntax do I use?" The x86 is blessed/cursed with literally *dozens* of different assembly language syntaxes. No matter *what* assembly language syntax I chose, there would have been someone complaining about it. If I'd gone with GNU's as (gas), there would have been complaints about the syntax. Had I gone with FASM, the NASM crowd would have been put off.

Probably the "safe" choice would have been to go with MASM (which the earlier, 16-bit version of the book, used). No doubt, many of the complaints about how I used HLA instead of a different assembly language syntax would have gone away had I done this. The funny part is that MASM is *also* a high-level assembler, having almost all the same high-level control constructs found in HLA. The same is true, by the way, for Borland's Turbo Assembler (TASM). From a language feature point of view, there really isn't much difference between the high-level facilities of MASM, TASM, and HLA. Maybe it's just the name that freaks people out.
Read more ›
10 Comments 131 of 142 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
Some of the above reviews have claimed that this book does not teach "real" assembly language, and that it uses 'c'-like wrappers instead of pure assembly instructions. This is a misconception most likely caused by these reviewers lack of knowledge, and/or failure to read the book of which they have submitted a review.
First off, what is Assembly Language? It is an attempt to make the actual machine instructions more readable to us humans, back when I first learned assembly language on the 6502, I programmed using hexademical instructions, so for example, changing the background color on the good old C64 would be:
$a9,$00,$8d,$21,$d0
Now, this isn't exactly readable as far as code goes, so later I got hold of an assembler, and the above code was written as:
lda #$00
sta $d021
This was suddenly alot more readable, and generated exactly the same code. Onwards assemblers have evolved, including things like macros, local labels, etc. HLA is one such evolution, it contains for example alot of control structures to avoid the need of labels, but that does not mean that you have to use them. For readability, it's lot easier for you to make a function call as:
Foo(1,2,3);
But if you really want to, you can write the code yourself,
push 3;
push 2;
push 1;
call Foo;
Still, this is exactly the code that will be generated by the above Foo(1,2,3), so it's really just a matter of taste.
Likewise, the high-level constructs such as IF... THEN works just the same way:
if(eax == 1) then
endif
could be written by yourself as:
cmp eax, 1
jne Label
But again, this is the same code that the high-level construct will generate.
Read more ›
2 Comments 80 of 86 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
This is truly amazing piece of work on High Level Assembly (HLA). It's important to know what you are getting is a book on HLA because the back cover says, "The most comprehensive guide to assembly language". Which is both hyperbole and factually slightly inaccurate. It's a very, very good book on an assembly language (HLA), but not all assembly languages. Nor should I think there would be a good book that covered all assembly languages, but that's beside the point.

There is some general value in the book that applies to almost any processor. The basics of registers, operations, pointers, the stack and other basics. But as you get deeper into the book it's clear that this is a work on HLA and HLA alone.
Comment 38 of 40 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
I grabbed this book looking for some interesting tidbits. I know a few RISC architectures asm, but never played w/x86, which is what I saw in the flipping through the book. Turns out I didn't flip through it nearly as much as I should have before buying it.

I didn't notice the whole book being geared towards a pseudo-assembly called HLA. High Level Assembly. Looks like x86, but isn't quite. Ok, my fault. So I read on and get a book using a teaching format I personally HATE. The "teach the wrong, but easy way first" then "teach the more correct way later and hope the reader doesn't remember the wrong way" approach. Ugh.

I'm not sure I would recommend this book to anyone. It's expensive and huge, when there are other more compact tomes to learn assembly from.
1 Comment 73 of 85 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
I first learned assembly language programming with the 16-bit edition of this book found on the internet. So naturally, I rushed out and bought the hard copy when it became available. My first thought was that "this is not the assembly language I'm used to." This book uses a new type of assembler, a High Level Assembler, for all of the examples. At first, I was completely put off by this approach - it was completely foreign to me. But then I realized that this book was not meant for people like myself who have been programming in assembly for years, instead it was created for people who know a high level language and want to learn assembly. Once I realized this, I began to see this book in a whole different light. The organization is perfect for someone who has a high level language background and is learning assembly for the first time. Although "old-timers" such as myself probably won't find this approach to their liking, I heartily recommend this book to anyone who is learning assembly language for the first time. While I do not have the perspective of learning assembly language using HLA, I am convinced that the author is correct that this is a good approach for beginners approaching the language.
Comment 27 of 30 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews