Statistics on site:   Courses: 80+   Tasks: 1600+   Tests: 12000+   Projects: 950+   Interview Questions: 1500+   LevelUps: 180000+

0

🤓
DEV HUMOR
    Share Us:

ARM64 Assembly Programming Login to unlock all sections



  •  Welcome
  •  Syllabus
  •  Course & Video
  •  Tasks
  •  Projects
  •  Tests
  •  Get Certified
  •  Interview Questions

Welcome to ARM64 Assembly Programming

Congratulations on taking the first step toward becoming a real programmer.

</>

Learn. Practice. Build.

This course is designed to take you from the fundamentals to advanced programming concepts through structured learning, practical examples, and hands-on experience.

Whether you're completely new to programming or an experienced developer looking to expand your skills, you'll find everything you need to move forward with confidence.

Your Path to Becoming a Code Hero

01

Learn

Understand programming concepts step by step and build a strong technical foundation.

02

Practice

Reinforce your knowledge with examples, exercises, and practical coding challenges.

03

Build

Turn what you learn into practical programming skills that you can use in real projects.

user@zero-to-hero:~/course$ start --learning
// Your journey begins now...
✓ Course initialized
✓ Learning path ready
✓ Time to become a Code Hero

Ready to Level Up?

Start the course, keep practicing, and take your programming skills from zero to hero.

Course Syllabus

Explore the complete learning path and see exactly what you'll learn throughout this course.

</>

What You'll Learn

Follow the roadmap below and progress from the fundamentals to advanced concepts.

This course offers a comprehensive introduction to ARM64 assembly programming, covering architecture, memory management, system calls, and interfacing with C code. You'll learn to write low-level code for Linux, Windows, and macOS ARM64 platforms through hands-on examples, gaining essential skills for efficient system programming.

Course Outline:

1. Introduction to ARM64 Assembly

  1. ARM64 Architecture
  2. First Program for Linux ARM64 and Android on Windows
  3. First Program for Linux ARM64 and Android on Linux x86-64
  4. First Program on Linux ARM64
  5. First Program for Linux ARM64 and Android on macOS
  6. Data Representation

2. Basics of ARM64 Assembly

  1. Processor Registers
  2. Instructions. Reverse Engineering a Program
  3. Checking a Register's Value
  4. MOV Instruction and Copying Values
  5. Shift Operations
  6. Loading Constants into Registers
  7. Copying Bits
  8. Sign and Zero Extension of Registers
  9. Addition. ADD Instruction
  10. Subtraction. SUB Instruction
  11. Logical Operators
  12. Multiplication. MUL Instruction
  13. Division. SDIV and UDIV Instructions
  14. Accumulator Instructions MADD and MSUB

3. Working with Data and Memory

  1. Data Types
  2. Characters
  3. LDR Instruction. Loading Data
  4. Data Alignment
  5. STR Instruction. Storing Data
  6. Address Arithmetic
  7. .EQU Directive. Defining Constants
  8. Getting an Address
  9. Addressing Modes. Offset Addressing
  10. Pre-indexed and Post-indexed Addressing
  11. PC-relative Addressing
  12. STRB and Manipulating Characters in a String
  13. Loading and Storing Two Registers. LDP and STP
  14. Stack

4. State Management and Branching

  1. Status Flags
  2. Addition and Flag Setting. ADDS Instruction
  3. Subtraction and Flag Setting. SUBS Instruction
  4. Addition with Carry. ADC
  5. Subtraction Considering the Carry Flag. SBC
  6. Unconditional and Conditional Branches
  7. Comparison and CMP, CMN, and TST Instructions
  8. Conditional Selection Instructions
  9. CCMP Instruction. Combining Conditions
  10. Compare and Branch. CBZ, CBNZ, TBZ, and TBNZ Instructions
  11. Program Branching and Conditional Constructs
  12. Checking Complex Conditions
  13. Simulating a switch..case Construct
  14. Loops
  15. Practice: Converting a String to Uppercase
  16. Practice: Printing a Register to the Console

5. Functions

  1. Defining and Calling a Function
  2. Nested Function Calls
  3. Passing Parameters to a Function
  4. Returning a Result from a Function
  5. Splitting Functions into Separate Files
  6. Code Insertion and the include Directive
  7. Macros
  8. Stack Frame
  9. Passing Addresses to a Function

6. Linux System Calls

  1. Linux System Calls: Reading and Writing Files
  2. List of Linux System Calls for ARM64 Architecture

7. Interacting with C Code

  1. Calling C Language Functions from Assembly Code
  2. ARM ABI Conventions
  3. Calling Assembly Functions from a C Program
  4. Embedding Assembly Code into C Code

8. FPU, Floating-Point Numbers, and the Neon Coprocessor

  1. Defining and Loading Floating-Point Numbers
  2. Arithmetic Operations with Floating-Point Numbers
  3. Floating-Point Number Conversion
  4. Comparing Floating-Point Numbers
  5. Neon Coprocessor and Parallel Computations
  6. Practice: Parallelizing String Uppercase Conversion

9. Various Examples

  1. Matrix Multiplication
  2. Calculating Distance Between Points
  3. Matrix Multiplication Using the Neon Coprocessor
  4. Calculating the Length of a 4D Vector

10. ELF File Format

  1. ELF File Header
  2. Program Headers
  3. Section Headers of an ELF File

11. Creating Programs for macOS ARM64

  1. First Program for macOS ARM64
  2. First Program in Xcode
  3. Development Features for macOS ARM64: Loading Data
  4. System Calls in macOS: Console Input and Output
  5. Debugging Programs for macOS

12. Creating Programs for Windows ARM64

  1. First Program for Windows ARM64
  2. Defining Data in armasm64 Assembly
  3. Interacting with WinAPI
  4. Windows System Calls
  5. Interacting with C/C++ Code

Why Enroll

Enroll in this course to gain essential skills in ARM64 assembly programming, a critical area for building efficient, low-level applications. Whether you're developing for Linux, Windows, or macOS on ARM64, this course provides hands-on experience with real-world examples, system calls, and memory management, preparing you for high-performance programming and career advancement in embedded systems and software development.

Learn. Practice. Build.

Work through each section, practice what you learn, and keep progressing toward becoming a Code Hero.

Assembler For ARM 64 Interview Questions

Assembler For ARM 64

1. What is the purpose of the `ADD` instruction in ARM64 assembly language?

2. How does the `LDR` instruction differ from the `STR` instruction in ARM64?

3. Explain the difference between the `LSL` and `LSR` instructions in ARM64.

4. What is the function of the `CMP` instruction in ARM64?

5. What is a branch instruction in ARM64, and how does it work?

6. What is the significance of the `RET` instruction in ARM64?

7. How does the `MOV` instruction function in ARM64 assembly?

8. What does the `BIC` instruction do in ARM64?

9. What is the purpose of the `EOR` instruction in ARM64?

10. What are condition codes in ARM64, and how are they used?

11. What is the role of the `MUL` instruction in ARM64 assembly?

12. What is the difference between `ADD` and `ADDI` instructions in ARM64?

13. What is the purpose of the `STP` instruction in ARM64?

14. How do you perform a conditional branch using flags in ARM64?

15. What is the function of the `BL` instruction in ARM64?

16. What is the significance of the `S` suffix in ARM64 instructions like `ADD` and `SUB`?

17. What is the purpose of the `SUBS` instruction in ARM64?

18. How do you access and manipulate individual bits of a register in ARM64?

19. What is a stack frame, and how is it used in ARM64 functions?

20. What is the `MOVZ` instruction used for in ARM64 assembly?





💬 We'd Love to Hear Your Thoughts! ✨

You must be signed in to post a comment.

Sign In

💬 What other coders think…
(or debugged their thoughts) ✨

No comments yet. Be the first!

STAY IN THE LOOP

Keep Leveling Up.

Get coding tips, practical resources, useful tools, tutorials, learning guides, and fresh developer content designed to help you build real skills and keep moving forward.

Discover new ways to learn, practice, and build — from programming fundamentals and algorithms to modern web development, software engineering, and useful developer tools.

No unnecessary noise. Just valuable content to help you go from zero to hero.

✉️

Stay in the Loop

Get coding updates, new resources, developer tips, and exclusive offers delivered straight to your inbox.

Please enter a valid name using letters and spaces only.
Please enter a valid email address.
Please agree before subscribing.
🔒 No spam. Just useful developer content.
    Share Us:
Zero to Hero
All rights reserved
2021-2026
GET IN TOUCH
Contact
SUPPORT THE PROJECT

Help Zero to Hero Grow.

Support the project, explore DotDevArt, Donate or check out our recommended resources.

Recommended Resources
ZERO → HERO/LEARN • PRACTICE • BUILD
Fresh Drop
DotDevArt T-Shirts
Curated with a fresh rotation of best sellers.