ARM Assembly Language From Ground Up™ 1 [Video]
 FREE Subscription Read for free
 $19.99 Was 74.99 Video Buy
 $12.99 Video + Subscription Buy

What do you get with a Packt Subscription?
 Instant access to this title and 7,500+ eBooks & Videos
 Constantly updated with 100+ new titles each month
 Breadth and depth in over 1,000+ technologies

Free ChapterIntroduction

Introduction to the ARM Assembly Language

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

The Programmer's Model

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

LoadStore Instructions

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

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

Branch and Loop Instructions

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

Stack Instructions

The FloatingPoint Unit

Mixing C and Assembly Language

Peripheral Drivers Development (STM32F411Nucleo Board)

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

Data Structures

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

Finite State Machine (FSM)

Set up Keil µVision 5

Closing
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. The code bundle for this course is available at https://github.com/PacktPublishing/ARMAssemblyLanguagefromGroundUp1
 Publication date:
 September 2020
 Publisher
 Packt
 Duration
 14 hours 37 minutes
 ISBN
 9781800561274