.section data $0x1000 { factorial: cmplt %r0, $2 jnz factorial_one push %r0 sub %r0, $1 call factorial pop %r0 mul %status, %r0 jmp factorial_end factorial_one: mov %status, $1 factorial_end: ret main: mov %r0, $6 call factorial cmpeq %status, $720 jz fail mov %status, $0 jmp end fail: mov %status, $1 end: halt .export main } .meta { ip: main }