About this book

Arm® Compiler armasm User Guide. This document provides topic based documentation for using the Arm assembler (armasm). It contains information on command line options, assembler directives, and supports the Armv6‑M, Armv7, and Armv8 architectures.

Using this book

This book is organized into the following chapters:

Chapter 1 Overview of the Assembler

Gives an overview of the assemblers provided with Arm® Compiler toolchain.

Chapter 2 Overview of the Arm®v8 Architecture

Gives an overview of the Arm®v8 architecture.

Chapter 3 Overview of AArch32 state

Gives an overview of the AArch32 state of Arm®v8.

Chapter 4 Overview of AArch64 state

Gives an overview of the AArch64 state of Arm®v8.

Chapter 5 Structure of Assembly Language Modules

Describes the structure of assembly language source files.

Chapter 6 Writing A32/T32 Assembly Language

Describes the use of a few basic A32 and T32 instructions and the use of macros.

Chapter 7 Condition Codes

Describes condition codes and conditional execution of A64, A32, and T32 code.

Chapter 8 Using armasm

Describes how to use armasm.

Chapter 9 Advanced SIMD Programming

Describes Advanced SIMD assembly language programming.

Chapter 10 Floating-point Programming

Describes floating-point assembly language programming.

Chapter 11 armasm Command-line Options

Describes the armasm command-line syntax and command-line options.

Chapter 12 Symbols, Literals, Expressions, and Operators

Describes how you can use symbols to represent variables, addresses, and constants in code, and how you can combine these with operators to create numeric or string expressions.

Chapter 13 A32 and T32 Instructions

Describes the A32 and T32 instructions supported in AArch32 state.

Chapter 14 Advanced SIMD Instructions (32-bit)

Describes Advanced SIMD assembly language instructions.

Chapter 15 Floating-point Instructions (32-bit)

Describes floating-point assembly language instructions.

Chapter 16 A64 General Instructions

Describes the A64 general instructions.

Chapter 17 A64 Data Transfer Instructions

Describes the A64 data transfer instructions.

Chapter 18 A64 Floating-point Instructions

Describes the A64 floating-point instructions.

Chapter 19 A64 SIMD Scalar Instructions

Describes the A64 SIMD scalar instructions.

Chapter 20 A64 SIMD Vector Instructions

Describes the A64 SIMD vector instructions.

Chapter 21 Directives Reference

Describes the directives that are provided by the Arm assembler, armasm.

Chapter 22 Via File Syntax

Describes the syntax of via files accepted by the armasm, armlink, fromelf, and armar tools.


The Arm® Glossary is a list of terms used in Arm documentation, together with definitions for those terms. The Arm Glossary does not contain terms that are industry standard unless the Arm meaning differs from the generally accepted meaning.

See the Arm® Glossary for more information.

Typographic conventions

Introduces special terminology, denotes cross-references, and citations.
Highlights interface elements, such as menu names. Denotes signal names. Also used for terms in descriptive lists, where appropriate.
Denotes text that you can enter at the keyboard, such as commands, file and program names, and source code.
Denotes a permitted abbreviation for a command or option. You can enter the underlined text instead of the full command or option name.
monospace italic
Denotes arguments to monospace text where the argument is to be replaced by a specific value.
monospace bold
Denotes language keywords when used outside example code.
Encloses replaceable terms for assembler syntax where they appear in code or code fragments. For example:
MRC p15, 0, <Rd>, <CRn>, <CRm>, <Opcode_2>
Used in body text for a few terms that have specific technical meanings, that are defined in the Arm® Glossary. For example, IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and UNPREDICTABLE.


Feedback on this product

If you have any comments or suggestions about this product, contact your supplier and give:

  • The product name.
  • The product revision or version.
  • An explanation with as much information as you can provide. Include symptoms and diagnostic procedures if appropriate.
Feedback on content

If you have comments on content then send an e-mail to mailto:errata@arm.com. Give:

  • The title Arm Compiler armasm User Guide.
  • The number DUI0801J.
  • If applicable, the page number(s) to which your comments refer.
  • A concise explanation of your comments.

Arm also welcomes general suggestions for additions and improvements.


Arm tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the quality of the represented document when used with any other PDF reader.

Other information

Non-ConfidentialPDF file icon PDF versionDUI0801J
Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.