34 lines
375 B
ArmAsm
34 lines
375 B
ArmAsm
.syntax unified
|
|
.cpu cortex-m4
|
|
.thumb
|
|
|
|
.global lab1_v1
|
|
|
|
#define A 0xED76
|
|
#define B 0xFA53
|
|
#define C 10
|
|
|
|
lab1_v1:
|
|
push.n {r0, r1, r2}
|
|
|
|
ldr.n r0, =A
|
|
ldr.n r1, =B
|
|
|
|
and r0, r1
|
|
|
|
mov r1, #C
|
|
mov r2, 1
|
|
|
|
_fac:
|
|
mul r2, r2, r1
|
|
sub r1, #1
|
|
cmp.n r1, #1
|
|
bgt _fac
|
|
|
|
add r2, r2, r0, lsr #1
|
|
mov r11, r2
|
|
|
|
pop {r0, r1, r2}
|
|
|
|
mov pc, lr
|