You are caught up on course updates and Q&A replies.
Registers and Values is queued after this lesson.
This article lesson is locked
Purchase or enrol in the course to read Labels And Memory Layout.
View courseAsk about this lesson’s topic
See something confusing? Subscribe to ask the lesson assistant about it.
- Ask about lesson topics and get clear explanations when you need them.
- Get clear answers to up to 5 lesson questions each day.
- Enrol in up to 4 included courses each month and learn while subscribed.
- Save 75% on eligible courses outside the subscription.
No suggested offers right now
Continue through the course and check back later for relevant recommendations.
About This Lesson
Go from your first ARM64 instruction to writing fast, practical assembly that works with Linux, C, and modern hardware. You do not need an ARM processor to follow this course, we use an emulator. The ARM64 Assembly Language Masters Course teaches AArch64 assembly from the ground up through clear explanations, guided demonstrations, runnable examples, quizzes, and hands-on assignments. You’ll begin by configuring the GNU assembler and QEMU environment, then write your first program and learn how registers, labels, memory, addresses, branches, and Linux system calls really work. As your skills develop, you’ll explore integer and floating-point arithmetic, conditional logic, loops, the stack, strings, subroutines, and the ARM64 calling convention. You’ll learn how C and assembly communicate, including pointer and structure arguments, functions with more than eight parameters, large return values, callbacks, and calls into the C standard library. The advanced sections take you beyond basic syntax and into real systems programming. You’ll implement bit masks and CRC-32, vectorize a dot product with NEON SIMD, build a thread-safe atomic counter using exclusive instructions, call functions through pointers, and create a position-independent shared library using the Global Offset Table. By the end of the course, ARM64 assembly will no longer look like mysterious low-level code. You’ll understand how instructions, memory, operating-system services, compilers, linkers, calling conventions, and hardware work together—and you’ll be able to write, test, debug, and integrate ARM64 assembly with confidence. What you’ll learn Write and run ARM64 assembly programs on Linux Work confidently with registers, memory, pointers, and the stack Build branches, loops, arithmetic, and floating-point operations Call Linux system services directly Create reusable subroutines that follow AAPCS64 Mix ARM64 assembly with C in both directions Pass pointers, structures, callbacks, and large values Use the C standard library from assembly Apply bitwise operations to practical problems such as CRC-32 Accelerate calculations with NEON SIMD Implement atomic operations and understand memory ordering Build position-independent code and shared libraries Who this course is for This course is ideal for programmers, reverse engineers, security researchers, emulator developers, embedded developers, and anyone who wants to understand ARM64 beyond the compiler’s output. No previous assembly-language experience is required. Basic programming knowledge is helpful, and some familiarity with C will benefit you in the interoperability sections.
- Continue through the course in the order designed by the instructor.
- Use the lesson resources and Q&A when you need extra context.
- Track your progress automatically as you move through each lesson.
No questions yet
Ask the instructor when you hit a blocker in this lesson.
Course Overview
Go from your first ARM64 instruction to writing fast, practical assembly that works with Linux, C, and modern hardware. You do not need an ARM processor to follow this course, we use an emulator. The ARM64 Assembly Language Masters Course teache...
Daniel McCarthy
DragonZap instructor focused on practical programming, course support, and student progress.
View Teacher Profile