CONTENTS

Home
Updates
Software
Electronics
Android / iOS
Videos
Music
Resume
Contact



HTTPS VERSION


Call Assembly Function From C On ARM

Posted: November 18, 2012

Introduction

For first test in making sure my naken_asm can assemble ARM code properly I decided to try and link some code with a C program compiled with gcc on the Raspberry Pi. I decided to do just a simple number adding function (only 2 lines of assembly).

For a full example of this working check out my Easy Match library.

Related Projects @mikekohn.net

ASM: SSE Image Processing, JIT Compiler, Generating Java Byte Code, ARM Assembly, Easy Match, Mandelbots With SIMD

asm_module.asm

.arm

add_numbers_asm:
  add r0, r0, r1
  bx lr

test_arm.c

#include <stdio.h>
#include <stdlib.h>

int add_numbers_asm(int a, int b);

int main(int argc, char *argv[])
{
  printf("%d\n", add_numbers_asm(7,8));

  return 0;
}

To Build it

naken_asm -l -e -o asm_module.o asm_module.asm
gcc -o test_arm test_arm.c asm_module.o -Wall

Copyright 1997-2018 - Michael Kohn