Autoplay
Autocomplete
Previous Lesson
Complete and Continue
ARM Raspberry Pi Assembly Language From Ground Up™
Introduction
Introduction (1:31)
Introduction to ARM Assembly Language
The Computing Device (2:35)
Number Systems (6:38)
Assembly Tools (1:58)
Translating Bits to Commands (3:19)
Assembly Syntax (1:43)
ARM Design Philosophy and RISC Architecture
The RISC Design Philosophy (3:43)
The ARM Design Philosophy (3:06)
Embedded Systems with ARM Processors (3:11)
ARM Bus Technology and AMBA Bus Protocol (2:14)
Memory (7:57)
Peripherals (2:23)
Von Neumann and Harvard architecture (3:46)
Cache and Tightly Couple Memory (3:40)
Memory Management extensions (2:29)
Coprocessor extensions (1:17)
Set up
Remotely accessing your Raspberry Pi by SSH (10:43)
Remotely accessing your Raspberry Pi by Remote Desktop Connection (4:42)
Installing CodeBlocks IDE on Raspberry Pi (1:05)
The Programmer's Model
Data Types (2:51)
ARM7TDMI Registers (7:52)
ARM Cortex-M Registers (4:34)
ARM Data Flow Model (3:44)
The Pipeline (4:08)
ARM Processor Family (1:55)
ARM Cortex-A and Cortex-R (1:42)
ARM Cortex-M (1:31)
Section Summary (0:45)
Assembler Rules and Directives
Structure of an Assembly Module (3:16)
The ARM,Thumb and Thumb-2 Instruction Sets (2:31)
Predefined Register Names (2:22)
Frequently used Directives (3:22)
GCC ARM Assembly Directives (2:38)
Difference between Raspberry Pi Assembly code and Kiel ARM Assembly code (2:10)
How to Assemble,Link and Run with Raspberry Pi Terminal (7:16)
Debugging with GDB (2:35)
Coding : Allocating space in memory with the SPACE Directive (19:16)
Overview of Binary Operators (1:44)
Coding : Swapping Register Content (4:35)
Coding : Renaming Registers (7:39)
Assemble,Link & Run in Raspberry Pi Terminal
Coding : Creating an Assembly program with the Raspberry Pi Terminal (7:36)
Coding : Debugging an Assembly program with the Raspberry Pi Terminal (12:24)
Load-Store Instructions
Memory Demarcations (3:35)
Frequently used Load/Store Instructions (Part I) (5:27)
Frequently used Load/Store Instructions (Part II) (5:18)
Frequently used Load/Store Instructions (Part III) (4:47)
Pre-Indexed Addressing (2:16)
Post-Indexed Addressing (2:21)
Endianness (2:50)
Defining Memory Areas (2:27)
Dealing with Constants and Literals
Encoding of the MOV instruction (4:41)
15_Loading Constants with MOVW and MOVT (0:57)
16_Loading Labels with the ADR_ADRL and LDR_Instructions (2:32)
14_Loading Contants with the LDR instruction (2:43)
3_Solving_a_simple_eqn_v1 (6:47)
3_Solving_a_simple_eqn_v2 (7:07)
3_Solving_a_simple_eqn_v3 (13:19)
13_The ARM Rotation Scheme (5:23)
3_Solving_a_simple_eqn_v4 (5:29)
Coding : Cleaning up your project (1:12)
Coding : Adding files to your project (0:40)
Arithmetic and Logic Instructions
Flags (3:02)
The N and V Flags (3:34)
The Z and C Flags (0:42)
Compare/Test Instructions (6:24)
Overview of Boolean Operations (1:33)
Coding : Experimenting with the CPSR Flags (9:58)
Coding : Experimenting with the Carry Flag (10:30)
Coding : Experimenting with the Carry and Overflow Flags (14:48)
Introduction to Shifts and Rotations (1:25)
Understanding Logical Shifts (4:47)
Understanding Rotations (1:33)
Some Shift and Rotate Examples (2:57)
Overview Addition and Subtraction Instructions (1:50)
Coding : Finding the Maximum Value in a Dataset (10:46)
Coding : Adding Signed Data (7:48)
Bit Manipulation Instructions (4:42)
Overview of Saturated Math Instructions (3:42)
Overview of Multiplication Instructions (4:16)
Multiplying by Constants (2:34)
Coding : Solving a More Complex Equation (8:41)
Overview of the Division Instruction (1:24)
Coding : Performing Division by Subtraction (6:41)
Closing
Closing Remarks (0:11)
Teach online with
The Computing Device
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock