assembly-arm

Provides guidance on reading and writing ARM assembly for AArch64 and Thumb architectures.

159|20|Updated Feb 20, 2026
One-click install
npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill assembly-arm
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: assembly-arm
Source: https://github.com/mohitmishra786/low-level-dev-skills/tree/main/skills/low-level-programming/assembly-arm
Command: npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill assembly-arm

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you understand, read, and write ARM (AArch64 and 32-bit Thumb) assembly code, bridging the gap between high-level code and machine instructions.

Core Features & Use Cases

  • Understand Compiler Output: Decode assembly generated by GCC/Clang for ARM targets.
  • Write Inline Assembly: Integrate assembly directly into C/C++ code for performance-critical sections.
  • Debug Low-Level Issues: Analyze register and stack states during debugging on ARM hardware or emulators.
  • Learn ARM ABI: Grasp the AArch64 (AAPCS64) and ARM (AAPCS) calling conventions.

Quick Start

Generate AArch64 assembly for the C file 'foo.c' with optimization level 2.

Frequently Asked Questions about assembly-arm

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write inline ARM assembly code for performance-critical sections in C/C++?

To write inline ARM assembly, you integrate assembly instructions directly into C/C++ code. This Skill provides guidance on structuring inline assembly for AArch64 and ARM Thumb architectures, covering register usage and constraints to optimize performance-critical sections.

What is the AArch64 calling convention and how does it affect register usage?

The AArch64 calling convention, known as AAPCS64, defines how functions receive arguments and return values via registers. This Skill explains the AAPCS64 and AAPCS conventions, detailing which registers to use for parameters, return values, and callee preservation.

How do I understand compiler-generated disassembly for ARM targets?

To understand compiler-generated ARM disassembly, you analyze the assembly output produced by GCC or Clang. This Skill helps decode these instructions, bridging the gap between high-level code and machine instructions for AArch64 and Thumb architectures.

Can I use NEON and SVE SIMD instructions to optimize ARM assembly code?

Yes, you can use NEON and SVE SIMD instructions to optimize ARM assembly code. This Skill covers Single Instruction Multiple Data operations, providing guidance on utilizing these instructions for parallel processing on AArch64 platforms.

What is the best way to debug low-level ARM assembly issues on emulators?

The best way to debug low-level ARM assembly issues is by analyzing register and stack states during execution. This Skill facilitates low-level debugging on ARM hardware or emulators by helping you interpret the underlying assembly instructions.

Does this Skill cover both AArch64 and 32-bit Thumb assembly architectures?

Yes, this Skill covers both AArch64 and 32-bit Thumb assembly architectures. It provides comprehensive guidance on reading and writing assembly code for both architectures, including their respective calling conventions and register usage rules.