Sebastian Theophil
Passive ARM Assembly Skills for Debugging, Optimization (and Hacking)
#1about 2 minutes
Core concepts of ARM assembly language
Assembly language consists of instructions and operands like registers, immediate values, memory addresses, and labels.
#2about 2 minutes
Overview of ARM CPU architecture and memory
Modern ARM CPUs like the Apple M1 feature numerous 64-bit registers and a multi-level cache system to mitigate slow main memory access.
#3about 3 minutes
Implementing a Fibonacci sequence loop in assembly
A practical example demonstrates basic ARM instructions like MOV, ADD, SUB, CMP, and B.NE for arithmetic and control flow.
#4about 3 minutes
Comparing handwritten assembly to optimized compiler output
The compiler often generates more efficient code than a direct translation, such as converting an incrementing for-loop into a decrementing counter.
#5about 4 minutes
Managing local variables using the stack
The stack provides fast, temporary memory for local variables, managed by the stack pointer (SP) and accessed with store (STR) and load (LDR) instructions.
#6about 4 minutes
How function calls work in ARM assembly
Function calls use the Branch and Link (BL) instruction, which saves the return address in the link register (X30) and transfers control.
#7about 2 minutes
The ARM procedure call standard and ABI
The Application Binary Interface (ABI) defines strict rules for register usage, including which registers pass arguments, return values, and must be saved by the caller or callee.
#8about 4 minutes
Loading 64-bit pointers with 32-bit instructions
ARM uses a two-step process with ADRP and ADD instructions to load a full 64-bit address by first getting the memory page and then the offset within it.
Related jobs
Jobs that call for the skills explored in this talk.
tree-IT GmbH
Bad Neustadt an der Saale, Germany
€54-80K
Intermediate
Senior
Java
TypeScript
+1
Dennemeyer Group
Hesperange, Luxembourg
Intermediate
Senior
.NET
Structured Query Language (SQL)
Matching moments
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
09:38 MIN
Technical challenges of shipping a cross-platform browser
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
01:06 MIN
Malware campaigns, cloud latency, and government IT theft
Fake or News: Self-Driving Cars on Subscription, Crypto Attacks Rising and Working While You Sleep - Théodore Lefèvre
01:15 MIN
Crypto crime, EU regulation, and working while you sleep
Fake or News: Self-Driving Cars on Subscription, Crypto Attacks Rising and Working While You Sleep - Théodore Lefèvre
03:31 MIN
The value of progressive enhancement and semantic HTML
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
05:55 MIN
The security risks of AI-generated code and slopsquatting
Slopquatting, API Keys, Fun with Fonts, Recruiters vs AI and more - The Best of LIVE 2025 - Part 2
03:58 MIN
Making accessibility tooling actionable and encouraging
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
03:55 MIN
The hardware requirements for running LLMs locally
AI in the Open and in Browsers - Tarek Ziadé
Featured Partners
Related Videos
Unleashing the Full Potential of the Arm Architecture – Write Once, Deploy Anywhere
Andrew Waafa
WebAssembly: Disassembled
Stefan Schöberl
Programming secure C#/.NET Applications: Dos & Don'ts
Sebastian Leuer
C++ Features You Might Not Know
Jonathan Müller
101 brilliant things of C++
Andreas Fertig
Wasm Deep Dive - A Glance Behind the Scenes
Rainer Stropek
Talk to the Duck - Secrets of the Debugging Masters
Shai Almog
Making Sense of Programming Languages
Aleksandra Sikora
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

Arm
Canton de Valbonne, France
Junior
ARM
Python
Scripting (Bash/Python/Go/Ruby)



Arm
Canton de Valbonne, France
ARM
C++
Unix
Ruby
Scripting (Bash/Python/Go/Ruby)

Arm Limited
Cambridge, United Kingdom
£48K
Senior
ARM
Perl
VHDL
Linux
+3



Arm Limited
ARM
CSS
Perl
Python
Scripting (Bash/Python/Go/Ruby)

Adacore
Canton de Grenoble-2, France
C
Python