LDA x BRZ done_i ; 0! = 1 STA i loop_i: LDA fact STA n LDA i SUB one BRZ done_i STA j loop_j: LDA fact ADD n STA fact LDA j SUB one BRZ done_j STA j JMP loop_j done_j: LDA i SUB one STA i JMP loop_i done_i: LDA fact STP one: 1 fact: 1 i: 0 j: 0 n: 0 x: 5