Video description
Build over 50 assembly programs  ARM instruction set, peripheral driver development, algorithms, and DSP routines
About This Video
 Become familiar with ARM architecture and assembly programming
 Learn how to build complex algorithms in assembly
 Solve advanced mathematical problems such as the Taylor series and Bisection algorithm
In Detail
ARM embedded assembly programming supports many of the devices that you use daily and if you want to go a step ahead and explore how to write flawless programs, develop algorithms, and build machines in assembly, here’s something you need to consider.
Before you write errorfree assembly programs for a processor, understanding the architecture of the processor is crucial. This video course will guide you through ARM architecture and help you develop flawless algorithms and machines in ARM assembly.
The course begins with an introduction to the ARM assembly language, enabling you to understand assembly tools and syntax. Next, you’ll become familiar with the ARM design philosophy and RISC architecture and gain a detailed understanding of the ARM instruction set, the Thumb instruction set, and the Thumb2 instruction set.
Moving ahead, you’ll create data structures such as FIFOs and LIFOs and design complex algorithms for performing binary search in assembly. You’ll also solve advanced mathematical problems such as the Taylor series and the Bisection algorithm. Toward the end, you’ll develop Finite state machines such as the Moore and Mealy machines and get an overview of Keil uVision 5  the software development solution for ARMbased controllers.
By the end of this course, you’ll have developed the skills you need to start your career as an ARM embedded developer.
Publisher resources
Table of contents
 Chapter 1 : Introduction
 Chapter 2 : Introduction to the ARM Assembly Language

Chapter 3 : Design Philosophy and Reduced Instruction Set Computer (RISC) Architecture
 The Reduced Instruction Set Computer (RISC) Design Philosophy
 The ARM Design Philosophy
 Embedded Systems with the ARM Processors
 ARM Bus Technology and Advanced Microcontroller Bus Architecture (AMBA) Bus Protocol
 Memory
 Peripherals
 Von Neumann and Harvard Architecture
 Cache and Tightly Couple Memory
 Memory Management Extensions
 Coprocessor Extensions
 Chapter 4 : The Programmer's Model

Chapter 5 : Assembler Rules and Directives
 Structure of an Assembly Module
 The ARM, Thumb, and Thumb2 Instruction Sets
 Predefined Register Names
 Frequently Used Directives
 Create a Simple Assembly Project with a Startup File
 Importance of the Reset Handler
 Simple Assembly Project without a Startup File
 Allocating Space in Memory Using the SPACE Directive
 Overview of Binary Operators
 Swapping Register Content
 Renaming Registers
 Chapter 6 : LoadStore Instructions

Chapter 7 : Dealing with Constants and Literals
 Encoding the MOV Instruction
 ARM Rotation Scheme
 Loading Constants Using the LDR Instruction
 Loading Constants Using the MOVW and MOVT Instructions.
 Loading Labels Using the ADR, ADRL, and LDR Instructions
 Solving a Simple Equation (Method 1)
 Solving a Simple Equation (Method 2)  Storing Constants in Memory
 Solving a Simple Equation (Method 3)  Using Register Relative Addressing
 Solving a Simple Equation (Method 4)  Compact Code

Chapter 8 : Arithmetic and Logic Instructions
 Flags
 The Negative (N) and Signed Overflow (V) Flags
 The Zero (Z) and Carry (C) Flags
 Compare/Test Instructions
 Overview of Boolean Operations
 Experimenting with the Program Status Register (PSR) Flags
 Experimenting with the Carry Flag
 Experimenting with the Overflow Flag
 Introduction to Shifts and Rotations
 Understanding Logical Shifts
 Understanding Rotations
 Some Shift and Rotation Examples
 Experimenting with the Logical Shift Left Instruction
 Overview of the Addition and Subtraction Instructions
 Finding the Maximum Value in a Dataset
 Adding Signed Data
 Finding the Minimum Signed Data
 Overview of the Saturation Arithmetic Instructions
 Overview of the Multiply Instructions
 Multiplying by Constants
 Solving More Complex Equation
 Overview of the Division Instruction
 Performing Division by Subtraction
 Overview of the Digital Signal Processing (DSP) Instructions
 Bit Manipulation Instructions
 Fractional Notation
 Understanding Q Notation
 Chapter 9 : Branch and Loop Instructions

Chapter 10 : Tables
 Introduction to Tables
 Navigating a Lookup Table
 Constructing a FloatingPoint Lookup Table
 Constructing a FloatingPoint Lookup Table  Version 2
 Creating a Program to Rapidly Compute the Sine of a Value (Part I)
 Creating a Program to Rapidly Compute the Sine of a Value (Part II)
 Creating a Program to Rapidly Compute the Sine of a Value (Part III)
 Creating Jump Tables
 Chapter 11 : Stack Instructions
 Chapter 12 : The FloatingPoint Unit
 Chapter 13 : Mixing C and Assembly Language
 Chapter 14 : Peripheral Drivers Development (STM32F411Nucleo Board)

Chapter 15 : Peripheral Drivers Development (TM4C123TIVA C Board)
 Assigning Symbolic Names to the Relevant General Purpose Input/Output (GPIO) Registers
 Implementing the General Purpose Input/Output (GPIO) Output Driver
 Assigning Symbolic Names to the Relevant General Purpose Input/Output (GPIO) Input Registers
 Implementing the General Purpose Input/Output (GPIO) Input Driver
 Toggling General Purpose Input/Output (GPIO) Outputs
 Chapter 16 : Data Structures

Chapter 17 : Algorithms Development
 Developing the Recursive Factorial Algorithm (Part I)
 Developing the Recursive Factorial Algorithm (Part II)
 Taylor Series Expansion Algorithm (Part I)
 Taylor Series Expansion Algorithm (Part II)
 Overview of the Reciprocal Square Root Algorithm
 The Reciprocal Square Root Estimate Algorithm (Part I)
 The Reciprocal Square Root Estimate Algorithm (Part II)
 Overview of the Bisection Algorithm
 Chapter 18 : Finite State Machine (FSM)
 Chapter 19 : Set up Keil µVision 5
 Chapter 20 : Closing
Product information
 Title: ARM Assembly Language from Ground UpTM 1
 Author(s):
 Release date: September 2020
 Publisher(s): Packt Publishing
 ISBN: 9781800561274
You might also like
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
video
Python Fundamentals
51+ hours of video instruction. Overview The professional programmer’s Deitel® video guide to Python development with …
book
Mastering Embedded Linux Programming  Second Edition
Master the techniques needed to build great, efficient embedded devices on Linux About This Book Discover …
book
Extreme C
Push the limits of what C  and you  can do, with this highintensity guide …