temp->[fp-4] iter->[fp-8] a->[fp+68] b->[fp+72] _rem: save sp, -112, sp st R0,[fp+68] st R1,[fp+72] cond_1: mov 1,R0 mov 0,R1 cmp R0,R1 bne body_1 b ret body_1: ld [fp+68],R0 st R0,[fp-4] mov 0,R0 st R0,[fp-8] cond_2: ld [fp-8],R0 ld [fp+72],R1 sub R0,R1,R0 mov 0,R1 cmp R0,R1 bne body_2 b cont_1 body_2: ld [fp-4],R0 add R0,1,R0 st R0,[fp-4] cond_3: ld [fp-4],R0 ld [fp+72],R1 sub R0,R1,R0 mov 0,R1 cmp R0,R1 bne b_true b b_false b_true: ld [fp-8],R0 add R0,1,R0 st R0,[fp-8] b cont_2 b_false: b ret cont_2: b cond_2 cont_1: ld [fp+68],R0 ld [fp+72],R1 sub R0,R1,R0 st R0,[fp+68] b cond_1 ret: ld [fp+68],R0 restore ret