De Alto nivel a Bajo nivel en ensamblador arm

Ejemplo de sumas y restas alto nivel lenguaje C y bajo nivel arm:

x = (a + b) - c;

• En ensamblador ARM:

ADR r4,a @ R3 <-- direccion de a
LDR r0,[r4] @ R0 <-- contenido de la direccion de memoria apuntada por r4, o sea a
ADR r4,b @ get address for b, reusing r4
LDR r1,[r4] @ get value of b
ADD r3,r0,r1 @ r3 <-- a + b
ADR r4,c @ get address for c
LDR r2,[r4] @ get value of c
SUB r3,r3,r2 @ complete computation of x
ADR r4,x @ address for x
STR r3,[r4] @ store value of x

Ejemplo de sumas y restas en lenguaje C: