Your Garage Best Books of the Month Amazon Fashion Learn more nav_sap_plcc_ascpsc PME Fire TV Stick Sun Care Patriotic Picks Shop-by-Room Amazon Cash Back Offer AllOrNothingS1 AllOrNothingS1 AllOrNothingS1  Amazon Echo  Echo Dot  Amazon Tap  Echo Dot  Amazon Tap  Amazon Echo Starting at $49.99 All-New Kindle Oasis AutoRip in CDs & Vinyl Segway miniPro

Your rating(Clear)Rate this item


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

on January 16, 2013
I thought this was an awful book to learn assembly language usage on a Pi. The author seems to have repackaged some of his other writing on assembly language. The book has nothing to do with a Raspberry Pi. There is not one example dealing specifically with a Pi. No mention of Pi's GPIO, timer, etc. At least I learned how to write an assembly language program to switch an infrared LED, triggering my Nikon D70 camera remotely. But it was not from this book but a "free" tutorial from [...]. I'm a novice looking for help and this book was a disappointment.
11 comment|40 people found this helpful. Was this review helpful to you?YesNoReport abuse
on April 9, 2013
I purchased this book and returned it.

Most people who buy a Raspberry Pi computer will probably start by installing Raspbian OS, a Raspberry Pi specific version of the Debian Linux distribution. To that end I expected this book to explain how to set up a toolchain to assemble, link, execute and debug programs. I also expected an introduction to the ARM architecture, including an overview of the instruction set with examples of calling system functions, examples showing how to accomplish a variety of tasks such as file and terminal i/o.

What this book does provide is instructions to install a single user, cooperative multi-tasking operating system from the late 1980's, RISC OS. (Think Windows 3.1 or Mac OS 7.) Furthermore rather than using a modern toolchain, or IDE, the user is instructed to use an assembler function of the BASIC interpreter. Now there is nothing wrong with RISC OS, especially if you've used one of the Acorn microcomputers, or BBC Basic. It was very popular in the UK, but relatively unknown in the US. Even if the user does gain a knowledge of assembly language as it relates to the ARM V6 core in the Raspberry Pi, the user doesn't end up with a knowledge of how to use that information in the Linux environment that most people will use.

I gave this book a three star rating, because it does do a good job of covering Assembly Language for BBC Basic on RISC OS, it is just not what most people would expect it to be, an Assembly Language introduction for Raspbian OS (Linux).
0Comment|22 people found this helpful. Was this review helpful to you?YesNoReport abuse
on February 26, 2013
This book is an excellent introduction to coding in ARM assembler on the Raspberry Pi with RiscOS. The focus is more on the assembler than on the Pi or on RiscOS, but I believe that if you want to get started using ARM assembler there is probably no easier platform to do that than the Pi with RiscOS.

The author assumes no specific low-level knowledge and does a great job explaining the basics. Fortunately he does so in a way that an experienced old hack like myself can skip over the introductions and get straight to the meat. I was able to read the book in one flight from Zurich to San Francisco, although the problem with that is that my hands were itching all the time to get some coding done with my newly acquired knowledge :-)

Do *not* buy this book if you want to know how to code in Python under Linux on the Pi.

*Do* buy this book if you want a great introduction to the ARM architecture, instruction set and assembler.

The author promised a follow-up book with more advanced topics which I will surely buy.
0Comment|13 people found this helpful. Was this review helpful to you?YesNoReport abuse
There are all kinds of things written about the wonders of learning assembly, as I did decades ago: you're up on the latest ARM technology, which also goes all the way back to the 80's; you finally really know what makes processors tick; you can create much more efficient programs than with Linux or Python... the list goes on. On top of it is the fact that we've pretty much lost a couple generations of machine level programmers due to object oriented, C and other chip requirements.

But now for the ugly underbelly. Assembly is not "hard" to learn, but it is a PAIN. It is filled with all kinds of details like stacks, memory allocation, binary, hex, and hoardes of 1's and 0's. If no one else is willing to tell you, I will-- it can be BORING if you don't have a certain personality. So, odds are, some buyers will get this and it will gather dust on their shelves. This is especially true if you have ADHD, like a lot of us programmers ironically do!

Any kind of programming skill requires the old "wax on - wax off" continual practice to get it-- many hours of it. With assembly, that means a lot of tolerance for even more repetitive detail than classes and methods in C#! This book isn't as complete as many other 500 pagers on assembly detail, nor is it as project oriented as, for example, Maxfield's classic Boolean Boogie book-- Bebop to the Boolean Boogie, Third Edition: An Unconventional Guide to Electronics. Sure, Raspberry has an ARM core, but you can also get an ARM emulator, a TI SDK, and study the same stuff on your PC. So, The Raspberry, to be honest, is a "hip" way to get folks interested in this title. Not that it isn't well suited for learning-- it is, but not in any special way other than cost.

It comes down to your time and focus. It MIGHT be better spent applying Python and Linux, ala Programming the Raspberry Pi: Getting Started with Python than assembly-- no one has unlimited time. Add the many possibilities of working at the circuit level with Pi/Propeller/Arduino combinations, and there are a LOT of opportunities with this platform, but we can't do them all!

There are a lot of typos in this book, but not many in the code thank heavens. The author does create an excellent pace for beginners, and is quite thorough for what is covered. Please see this as a beginning, though, because even though ARM Cortex and assembly are still very relevant, covering them with a single processor doesn't begin to explore the real world of multi processor challenges like race conditions, memory, etc. The flip side is that, if you're just getting into programming, you'll stand out by learning assembly-- as I said above, most folks just don't have the time! As long as it's not at the expense of Java or Python, go for it! Just be aware that the time commmitment is not light, and the subject takes big doses of patience and practice. Yes, an easy read, no, not an easy mastery.

Caveat: In case you came here for SPECIFIC Raspberry info, this is NOT the book for you. The two (free/downloadable) operating systems for Raspberry (Raspmc and Raspian, for the GPU-media center and to drive Linux, respectively) are not covered, get the free online documentation and/or a specific Rasp book like:Raspberry Pi User Guide or Getting Started with Raspberry Pi (Make: Projects). If you're REALLY serious about Assembly and ARM/Cortex regardless of Pi or platform, these are the "bibles" in increasing order of difficulty and completeness:

-- Hyde's The Art of Assembly Language
-- Linux/Dandamudi's Guide to Assembly Language Programming in Linux
-- Blum's Professional Assembly Language
-- Streib's Guide to Assembly Language: A Concise Introduction

Since we mentioned Maxfield above, whether you use assembly for math, embedded systems, graphics, etc. matters a lot. In addition to his wonderful Boolean Boogie book, Maxfield also wrote a classic for High School students and hobbyists on how to build a virtual computer/calculator as a "project." When you're done, you know more assembly, without having even realized it due to the fun, than most "DRY" texts! The book is: The Definitive Guide to How Computers Do Math : Featuring the Virtual DIY Calculator. I probably don't have to mention it, but ARM is the old UK "Acorn" system, so it was a natural, as the first RISC based processor, for the Pi project to adopt it.

Even though I mention TI because their SDK is so clean, there are obviously many licensees of the ARM IP, and in fact the Pi uses Broadcom's BCM2835 as it's primary ARM peripherals platform-- there are over a dozen 2835s in the Raspberry B, so it would be helpful if you download the free spec sheets on them from Broadcom's website. Unlike TI or Intel, and like Qualcomm for example, Broadcom is a "fabless" manufacturer, meaning they are engineers who license IP like the ARM (especially for handheld devices), but do all "their" manufacturing in China.

If you DO plan a career or hobby in embedded (chips/circuits in specific devices, cars, jets, etc.), today's top text using TI's SDK is Valvano's: Embedded Systems: Introduction to Arm® Cortex(TM)-M Microcontrollers (Volume 1). Have fun!!!
33 comments|17 people found this helpful. Was this review helpful to you?YesNoReport abuse
on February 3, 2013
This book is not a cookbook, or a tutorial that steps through the building of an application on the RPi.
This book teaches the basics of Assembly (or Assembler in the UK) Language programming as it relates to RISC OS running on the Raspberry Pi.

Why do we need this? Because RISC OS on the RPi is faster and smoother than running the default Linux operating system designed for the Pi. Using Assembly Language in the RISC OS environment allows us to access the lowest level of the CPU, called "bare metal programming". Being able to access the lowest level of the CPU via Assembly Language makes for very efficient and fast programs.

RISC OS running on the RPi = a small, fast and efficient operating system.
Assembly Language programming in the RISC OS environment (running on the RPi) = much faster and more efficient code.

You can apply this knowledge of Assembly Language programming to other ARM processors, and to many other processors in general, to create very fast running programs.
By learning Assembly Language programming you will obtain a great understanding of the inner workings of the CPU.

This book is very much like the books written in the 1980's about 6502 Assembly Language for the Atari, Commodore 64, etc. Back then code had to be small (in terms of memory use), also it had to be efficient and fast to run on machines with very limited resources, which holds true for the Raspbeery Pi.
0Comment|13 people found this helpful. Was this review helpful to you?YesNoReport abuse
on July 18, 2014
Another great Bruce Smith book. This time, it's Assembly Language on the RISC OS. I purchased this book and the Raspbian Assembly book. They have similar content but this one is focused on assembler on RISC OS. It's great to have another perspective on programming Assembler for different OS's on the same hardware platform. What you'll see is that while the tools and OS calls differ, in the end, assembler offers the same instructions on the SoC (system on a chip) computer. Understanding assembler is key to understanding how computers work. Buying this book and installing RISC OS is a great way to learn assembler in a not-so-familiar (to me) environment.
0Comment|2 people found this helpful. Was this review helpful to you?YesNoReport abuse
on October 16, 2015
In spite of what the editor wrote, I would not call the author's style, "lucid." Between the typos -- "us" instead of "use" (fairly easy to figure out), "bits" instead of "bytes" (confusing and more difficult to understand), etc. -- and some areas that were written in a confusing manor, the book would be difficult for most beginners to decipher. Learning a new OS together with a new dialect of BASIC in order to learn assembly language was unexpected. I had anticipated using an actual assembler such as GCC on an OS similar to Linux, but that has not been the author's approach. I have programmed Intel and Motorola products in assembly language for 40+ years and I had trouble understanding what the author was trying to say at times. I would not recommend this book for novices/beginners.
0Comment|Was this review helpful to you?YesNoReport abuse
on October 24, 2013
I'm sure the information on the book tell you, if you look. But the book wasn't written for individuals who plan to do assembly in a Linux environment. Sure some of the knowledge is portable, but it wasn't one of the better books I've seen on the subject (but it is one of the few).
11 comment|One person found this helpful. Was this review helpful to you?YesNoReport abuse
on February 23, 2013
Actually a better book then my 4 stars might imply. I would have given it 5 stars but for one annoyance, it does not show you Assembly in Raspian but instead uses RISC OS and BBC Basic that has been ported to the ARM platform. To be fair too here this choice provides a very friendly development environment for learning. It does a nice job teaching the instruction set and is worth the price if you want to get to a low level than C. I wanted to see how to twiddle some bits here especially give the GPIO and for what I was after covers it. Nicely written and in truth not a bad introduction to Assembly language on any platform. Bruce hit most all the concepts that will serve you well in Assembly against any chipset. If you want a reference to the ARM chip in your Raspberry PI this is still well worth having on your shelf. Just the Appendices are worth the price IMO.
11 comment|Was this review helpful to you?YesNoReport abuse
on July 6, 2013
I have been developing in assembly language for many years now and this book covers all of the bases. Using the BBC basic as a tool to create the assembly program is a good stepping stone. This book is well written , easy to follow and organized.
0Comment|One person found this helpful. Was this review helpful to you?YesNoReport abuse