Assembly language is basic. You have to learn it if you want to start programming from the ground up. So, to help you accomplish that, here are some great books to help.

An assembly language is a low-level programming language for a computer, or other programmable device. Assembly language is used by almost all modern desktop and laptop computers. It is as close to writing machine code without writing in pure hexadecimal. It is converted into executable machine code by a utility program referred to as an assembler.

Assembly language is also used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Assembly is excellent for speed optimization.

We’ve compiled a list of 10 Best Assembly Books of 2020.


ARM Assembly Language Programming & Architecture (ARM books) (Volume 1)

View on Amazon →

1.ARM Assembly Language Programming & Architecture (ARM books) (Volume 1)

Author: Muhammad Ali Mazidi (Author), Sarmad Naimi (Author), Sepehr Naimi (Author), Shujen Chen (Author)

Publisher: MicroDigitalEd.com; 2.0 edition (August 12, 2016)

Who uses ARM? Currently ARM CPU is licensed and produced by more than 200 companies and is the dominant CPU chip in both cell phones and tablets. Given its RISC architecture and powerful 32-bit instructions set, it can be used for both 8-bit and 32-bit embedded products. The ARM corp. has already defined the 64-bit instruction extension and for that reason many Laptop and Server manufactures are introducing ARM-based Laptop and Servers. Who will use our textbook? This book is intended for both academic and industry readers. If you are using this book for a university course, the support materials and tutorials can be found on www.MicroDigitalEd.com. This book covers the Assembly language programming of the ARM chip. The ARM Assembly language is standard regardless of who makes the chip. The ARM licensees are free to implement the on-chip peripheral (ADC, Timers, I/O, etc.) as they choose. Since the ARM peripherals are not standard among the various vendors, we have dedicated a separate book to each vendor.


TI Tiva ARM Programming For Embedded Systems: Programming ARM Cortex-M4 TM4C123G with C (Mazidi & Naimi ARM Series) (Volume 2)

View on Amazon →

2.TI Tiva ARM Programming For Embedded Systems: Programming ARM Cortex-M4 TM4C123G with C (Mazidi & Naimi ARM Series) (Volume 2)

Author: Muhammad Ali Mazidi (Author), Shujen Chen (Author), Sarmad Naimi (Author),

Publisher: MicroDigitalEd; First Edition edition (April 21, 2017)

1) Our ARM book series The ARM CPU is licensed and produced by hundreds of companies. The ARM Assembly language instructions and architectures are standardized and all the licensees must follow them. The first volume of this series (ARM Assembly Language Programming & Architecture by Mazidi & Naimi) covers the Assembly language programming, instructions, and architecture of the ARM and can be used with any ARM chip, regardless of the chip maker. Since the licensees are free to design and implement their own peripherals, the peripherals of ARM chips vary greatly among the licensees. For this reason, we have dedicated a separate volume to each licensee. This volume covers the peripheral programming of Texas Instruments (TI) ARM Tiva C series. Throughout the book, we use C language to program the Tiva C Series TM4C123G chip peripherals. We use TM4C123G LaunchPad™ Evaluation Kit which is based on ARM® Cortex®-M4F MCU. See our website for tutorials and support materials: http://www.MicroDigitalEd.com/ARM/TI_ARM_books.htm 2) Who will use our ARM textbooks? The primary audience of our textbook on ARM is undergraduate and graduate engineering students in Electrical and Computer Engineering departments. We assume no background in microcontroller and embedded systems programming. It can also be used by embedded system programmers who want to move away from 8- and 16-bit legacy chips such as the 8051, AVR, PIC, and HCS08/12 family of microcontrollers to ARM. Designers of the x86-based systems wanting to design ARM-based embedded systems can also benefit from this series. See our website for other titles for ARM Programming and Embedded Systems: http://www.MicroDigitalEd.com/ARM/ARM_books.htm


TI MSP432 ARM Programming for Embedded Systems (ARM books) (Volume 4)

View on Amazon →

3.TI MSP432 ARM Programming for Embedded Systems (ARM books) (Volume 4)

Author: Muhammad Ali Mazidi (Author), Shujen Chen (Author), Sepehr Naimi (Author), Sarmad Naimi (Author), Misagh Salmanzadeh (Author)

Publisher: MicroDigitalEd; 1 edition (September 16, 2016)

Why MSP432? The MSP430 is a popular microcontroller designed and marketed by the Texas Instruments (TI). It comes with some powerful peripherals such as ADC, Timer, SPI, I2C, UART, and so on. It has a 16-bit proprietary RISC architecture meaning only TI makes the products. Due to popularity of ARM architecture, many semiconductor design companies are moving away from proprietary architecture and adopting the ARM as the CPU of choice in all their designs. This is the case with MSP430. The MSP432 is an ARM version of the MSP430. In other words, all the MSP430 peripherals are moved to MSP432 with ARM instructions and architecture as the core processor. Another major feature of the MSP432 is its lower power consumption which makes it an ideal microcontroller for use in designing low power devices with IoT. See the link below: http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/low_power_performance/msp432p4x/overview.page Why this book? While there are several MSP430 textbooks on the market, currently there is only one textbook for MSP432. This textbook covers the details of the MSP432 peripherals such as ADC, Timer, SPI, I2C and so on with ARM programs. It also includes the programs for interfacing of MSP432 to LCD, Serial COM port, DC motor, stepper motor, sensors, and graphics LCD. All the programs in the book are tested using the MSP432 LaunchPad trainer board from TI. See the link below: http://www.ti.com/tool/MSP-EXP432P401R#buy


Embedded Systems: Introduction to the MSP432 Microcontroller (Volume 1)

View on Amazon →

4.Embedded Systems: Introduction to the MSP432 Microcontroller (Volume 1)

Author: Jonathan W. Valvano

Publisher: CreateSpace Independent Publishing Platform; 1 edition (June 4, 2015)

This book, now in its 6th printing, is the first in a series of three books that teach the fundamentals of embedded systems as applied to the MSP432 of microcontroller. This first book is an introduction to computers and interfacing focusing on assembly language and C programming. This book can be used with Texas Instruments Robot Systems Learning Kit. The second book Embedded Systems: Real-Time Interfacing to the MSP432 Microcontroller focuses on hardware/software interfacing and the design of embedded systems. This first book is an introductory book that could be used at the college level with little or no prerequisites. An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. This book is an introduction to embedded systems. Specific topics include microcontrollers, fixed-point numbers, the design of software in assembly language and C, elementary data structures, programming input/output including interrupts, analog to digital conversion, digital to analog conversion. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework, with answers to the odd questions on the web, provides more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. Each chapter has suggested lab assignments. More detailed lab descriptions are available on the web. Specifically for this volume, look at the lab assignments for EE319K. For Volume 2, refer to the EE445L labs. There is a web site accompanying this book http://users.ece.utexas.edu/~valvano/arm/msp432.htm. Posted here are ARM Keil uVision and Texas Instruments Code Composer Studio projects for each of the example programs in the book. You will also find data sheets and Excel spreadsheets relevant to the material in this book. The book will cover embedded systems for ARM Cortex-M microcontrollers with specific details on the MSP432.


Embedded Systems: Real-Time Interfacing to the MSP432 Microcontroller (Volume 2)

View on Amazon →

5.Embedded Systems: Real-Time Interfacing to the MSP432 Microcontroller (Volume 2)

Author: Jonathan W. Valvano

Publisher: CreateSpace Independent Publishing Platform; 1 edition (November 3, 2015)

This book, published June 2018 as a 2nd edition, is the second in a series of three books that teach the fundamentals of embedded systems as applied to MSP432 microcontrollers. These books are primarily written for undergraduate electrical and computer engineering students. They could also be used for professionals learning the ARM platform. The first book Embedded Systems: Introduction to the MSP432 is an introduction to computers and interfacing focusing on assembly language and C programming. This second book focuses on interfacing and the design of embedded systems. The third book Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers is an advanced book focusing on operating systems, high-speed interfacing, control systems, and robotics. An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. This book presents components, interfaces and methodologies for building systems. Specific topics include the architecture of microcontrollers, design methodology, verification, hardware/software synchronization, interfacing devices to the computer, timing diagrams, real-time systems, data collection and processing, motor control, analog filters, digital filters, real-time signal processing, wireless communication, low-power design, and the internet of things. In general, the area of embedded systems is an important and growing discipline within electrical and computer engineering. The educational market of embedded systems has been dominated by simple microcontrollers like the PIC, the 9S12, and the 8051. This is because of their market share, low cost, and historical dominance. However, as problems become more complex, so must the systems that solve them. A number of embedded system paradigms must shift in order to accommodate this growth in complexity. First, the number of calculations per second will increase from millions/sec to billions/sec. Similarly, the number of lines of software code will also increase from thousands to millions. Thirdly, systems will involve multiple microcontrollers supporting many simultaneous operations. Lastly, the need for system verification will continue to grow as these systems are deployed into safety critical applications. These changes are more than a simple growth in size and bandwidth. These systems must employ parallel programming, high-speed synchronization, real-time operating systems, fault tolerant design, priority interrupt handling, and networking. Consequently, it will be important to provide our students with these types of design experiences. The purpose of writing these books at this time is to bring engineering education into the 21st century. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. Each chapter has suggested lab assignments. More detailed lab descriptions are available on the book’s web site. This book can also be used with Texas Instruments Robot Systems Learning Kit. These books will cover embedded systems for ARM Cortex-M microcontrollers with specific details on the MSP432. Although the solutions are specific for the MSP432, it will be possible to use these books for other ARM derivatives. Volume 3 can be used for either the TM4C or MSP432 families.


ARM A32 Assembly Language: 32-Bit ARM, Neon, VFP, Thumb

View on Amazon →

6.ARM A32 Assembly Language: 32-Bit ARM, Neon, VFP, Thumb

Author: Bruce Smith

Publisher: BSB; 1 edition (May 19, 2017)

ARM A32 ASSEMBLY LANGUAGE is your hands-on guide to learning how to program in ARM machine code using the world’s most modern microprocessor. Ideal for the novice, this book will take you from first principles through to becoming a competent ARM programmer. It covers all aspects of the ARM instruction set including Thumb, Neon, Advanced SIMD and Vector Floating Point Programming. The book covers the new Unified Assembly Language (UAL) and the use of AArch32 State in the latest range of ARM microprocessors. The book applies to all the main releases of ARM architecture such as those found on all the popular single board computers and development boards. Program examples are provided that are written using the GCC Assembler and Compiler which is freely available for most computer operating systems. Amazon Reviewer: Probably one of the best assembly language books I’ve seen. Although I used to do some assembly language programming many years ago, this book was a very good refresher and clearly explained… Highly recommended. Taking You From Beginner To Expert Providing lucid descriptions, award-winning author Bruce Smith keeps things simple and includes plenty of program examples you can try for yourself. Ideas and concepts are introduced in the order required so you should never be left wondering. Just some of the many features include: 320 pages Practical approach with program example Unified Assembly Language compatible Uses FREE GCC assembler and linker ARM registers and arrangements Addressing modes Use of operating system Syscalls Debugging with GDB Using libc function calls Programming the GPIO Thumb – 16-bit and 32-bit (T16 and T32) Floating Point Programming Advanced SIMD and Neon programing Number crunching examples ARM Architecture Using C to create Assembler AArch32 and AArch64 (64-bit ARM) Exception Handling ARMv8 Overview Compatible with popular Single Board Computers: Arduino, BeagleBoard etc Bruce Smith – Award Winner – 50+ books and over 500,000 sales!


Raspberry Pi Assembly Language RASPBIAN Beginners: Hands On Guide

View on Amazon →

7.Raspberry Pi Assembly Language RASPBIAN Beginners: Hands On Guide

Author: Bruce Smith

Publisher: CreateSpace Independent Publishing Platform; 3 edition (August 19, 2013)

Raspberry Pi Assembly Language RASPBIAN Beginners THIRD EDITION is your hands-on guide to learning to program ARM machine code on your Raspberry Pi 3, 2, 1 or Zero. With nothing other than the Raspbian Operating System installed on your Raspberry Pi, this book shows you how to access all the tools that you’ll need to create your own machine code programs using assembly language. Ideal for the novice, this book starts from first principles and leads you comfortably on your way to become an accomplished programmer. Providing lucid descriptions, award winning author Bruce Smith keeps things simple and includes plenty of program examples you can try for yourself. Ideas and concepts are introduced in the order required so you should never be left wondering. Just some of the many features include: Practical approach with example programs GCC assembler and linker ARM registers and arrangements Addressing modes Use of operating system Syscalls Debugging with GDB Using libc function calls Programming the GPIO Examples are provided that are written using the GCC Compiler running under the Raspbian Operating System on the Raspberry Pi, all of which can be downloaded from the book support website at www.brucesmith.info. Amazon Reviewer: This gives a great introduction to assembler programming. This is a great book. Bruce Smith writes great books.


Modern Assembly Language Programming with the ARM Processor

View on Amazon →

8.Modern Assembly Language Programming with the ARM Processor

Author: Larry D. Pyeatt

Publisher: Newnes; 1 edition (April 27, 2016)

Modern Assembly Language Programming with the ARM Processor is a tutorial-based book on assembly language programming using the ARM processor. It presents the concepts of assembly language programming in different ways, slowly building from simple examples towards complex programming on bare-metal embedded systems.

The ARM processor was chosen as it has fewer instructions and irregular addressing rules to learn than most other architectures, allowing more time to spend on teaching assembly language programming concepts and good programming practice. In this textbook, careful consideration is given to topics that students struggle to grasp, such as registers vs. memory and the relationship between pointers and addresses, recursion, and non-integral binary mathematics. A whole chapter is dedicated to structured programming principles. Concepts are illustrated and reinforced with a large number of tested and debugged assembly and C source listings. The book also covers advanced topics such as fixed and floating point mathematics, optimization, and the ARM VFP and NEONTM extensions. PowerPoint slides and a solutions manual are included.

This book will appeal to professional embedded systems engineers, as well as computer engineering students taking a course in assembly language using the ARM processor.


![Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C: Third Edition]()

View on Amazon →

9.Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C: Third Edition

Author: Yifeng Zhu

Publisher: E-Man Press LLC (July 1, 2017)

The book introduces basic programming of ARM Cortex-M cores in assembly and C at the register level, and the fundamentals of embedded system design. It presents basic concepts such as data representations (integer, fixed-point, floating-point), assembly instructions, stack, and implementing basic controls and functions of C language at the assembly level. It covers advanced topics such as interrupts, mixing C and assembly, direct memory access (DMA), system timers (SysTick), multi-tasking, SIMD instructions for digital signal processing (DSP), and instruction encoding/decoding. The book also gives detailed examples of interfacing peripherals, such as general purpose I/O (GPIO), LCD driver, keypad interaction, stepper motor control, PWM output, timer input capture, DAC, ADC, real-time clock (RTC), and serial communication (USART, I2C, SPI, and USB).


Embedded Systems: Introduction to Arm® Cortex™-M Microcontrollers , Fifth Edition (Volume 1)

View on Amazon →

10.Embedded Systems: Introduction to Arm® Cortex™-M Microcontrollers , Fifth Edition (Volume 1)

Author: Jonathan W Valvano

Publisher: CreateSpace Independent Publishing Platform; 5th edition (May 26, 2012)

This book is self-published and is printed on demand. The original ISBN was generated in 2012, but if you purchase the book new from Amazon you will get the new version, which was uploaded December 2018. This book, now in its fifth edition, is the first in a series of three books that teach the fundamentals of embedded systems as applied to the ARM Cortex-M family of microcontrollers. This fifth edition focuses on the LaunchPads based on the TM4C123, TM4C1294, and MSP432E4 microcontrollers. This first volume is an introduction to computers and interfacing focusing on assembly language and C programming. The second volume, Embedded Systems: Real-Time Interfacing to ARM Cortex-M Microcontrollers, focuses on hardware/software interfacing and the design of embedded systems. There are MSP432P versions of the first two volumes. The third volume, Embedded Systems: Real-Time Operating Systems for ARM Cortex-M Microcontrollers, is an advanced book focusing on operating systems, high-speed interfacing, control systems, and robotics. The third volume could also be used for professionals wishing to design or deploy a real-time operating system onto an ARM platform. This first book is an introductory book that could be used at the college level with little or no prerequisites. An embedded system is a system that performs a specific task and has a computer embedded inside. A system is comprised of components and interfaces connected together for a common purpose. This book is an introduction to embedded systems. Specific topics include microcontrollers, fixed-point numbers, the design of software in assembly language and C, elementary data structures, programming input/output including interrupts, analog to digital conversion, digital to analog conversion. This book employs many approaches to learning. It will not include an exhaustive recapitulation of the information in data sheets. First, it begins with basic fundamentals, which allows the reader to solve new problems with new technology. Second, the book presents many detailed design examples. These examples illustrate the process of design. There are multiple structural components that assist learning. Checkpoints, with answers in the back, are short easy to answer questions providing immediate feedback while reading. Simple homework, with answers to the odd questions on the web, provides more detailed learning opportunities. The book includes an index and a glossary so that information can be searched. The most important learning experiences in a class like this are of course the laboratories. Each chapter has suggested lab assignments. More detailed lab descriptions are available on the web. Specifically for this volume, look at the lab assignments for EE319K. For Volume 2 refer to the EE445L labs, and for Volume 3, look at the lab assignments for EE445M/EE380L.6.There is a web site accompanying this book http://users.ece.utexas.edu/~valvano/arm. Posted here are Keil uVision and Texas Instruments Code Composer Studio projects for each of the example programs in the book. You will also find data sheets and Excel spreadsheets relevant to the material in this book. The book will cover embedded systems for ARM Cortex-M microcontrollers with specific details on the TM4C123, and MSP432E4. Most of the topics can be run on any of these microcontrollers. Although the examples designed are specific for the TM4C123, it will be possible to use these books for other ARM derivatives.