Writing a factorial function in ARM assembly language
we were required to do something similar. We were given a number to calculate, which was 7!.r0 will hold the final value. I ended up doing the following:

MOV r1, #7
MOV r1, #6
MOV r1, #5
MOV r1, #4
MOV r1, #3
MOV r1, #2
MOV r1, #1

MUL r0, r1, r2
MUL r0, r0, r3
MUL r0, r0, r4
MUL r0, r0, r5
MUL r0, r0, r6
MUL r0, r0, r7