5 mov
1,g6
# set carry-save register
8 Loop
: subo 1,g3
,g3
# update loop counter
9 ld (g1
),g5
# load from s1_ptr
10 addo 4,g1
,g1
# s1_ptr++
11 ld (g2
),g4
# load from s2_ptr
12 addo 4,g2
,g2
# s2_ptr++
13 cmpo g6
,1 # restore cy from g6, relies on cy being 0
14 subc g4
,g5
,g4
# main subtract
15 subc 0,0,g6
# save cy in g6
16 st g4
,(g0
) # store result to res_ptr
17 addo 4,g0
,g0
# res_ptr++
18 cmpobne
0,g3
,Loop
# when branch is taken, cy will be 0