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