Search code examples
gccassemblyarmida

How to assemble ARM instructions (using GCC)


I want to assemble ARM instructions (= converting the textual assembly instructions to machine code).

I tried using IDA Pro to disassemble an ARM binary but upon assembling it told me:

Sorry, this processor module doesn't support the assembler.

Then I downloaded an ARM gcc but trying to assemble with it also fails:

>gcc-arm-none-eabi-9-2019-q4-major-win32\arm-none-eabi\bin\as asm.s -o asm.o
asm.s: Assembler messages:
asm.s:1: Error: ARM register expected -- `mov W8,#0x80'

Why is the syntax invalid when IDA Pro shows instructions exactly like that? Does this gcc not support this ARM dialect or do I need a certain command line switch to make it work?

Processor       : ARM
ARM architecture: metaarm
Target assembler: Generic assembler for ARM
Byte sex        : Little endian

Solution

  • As indicated by the comments, downloading the aarch64 toolchain did the trick: