MIT-Curricular/ES/Lab/LAB5/FACTORIAL.asm

37 lines
No EOL
394 B
NASM

AREA RESET, DATA, READONLY
EXPORT __Vectors
__Vectors
DCD 0x10001000
DCD Reset_Handler
ALIGN
AREA MYCODE, CODE, READONLY
ENTRY
EXPORT Reset_Handler
Reset_Handler
LDR R1, =5
BL fact
LDR R12, =0x10001000
STR R0, [R12]
STOP
B STOP
fact
CMP R1, #1
BLE base_case
PUSH{R1, LR}
SUB R1, R1, #1
BL fact
POP{R2, LR}
MUL R0, R0, R2
BX LR
base_case
MOV R0, #1
BX LR
END