Add ES/Lab/LAB5/FACTORIAL.asm
This commit is contained in:
parent
c64fe39549
commit
97b27414a7
1 changed files with 37 additions and 0 deletions
37
ES/Lab/LAB5/FACTORIAL.asm
Normal file
37
ES/Lab/LAB5/FACTORIAL.asm
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
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
|
Loading…
Add table
Add a link
Reference in a new issue