int strncmp(const uint8_t *b1, const uint8_t *b2, size_t len) { int diff=0; for (;len && (*b1) && (*b2) && !(diff); --len) { diff = b1[i] - b2[i]; } return diff; } strncmp.s: ldis r5, 0 ; :strfor ldis r0, 0 ; ldb r0, r1 ; r0 = (*b1) ldb r5, r2 ; r5 = (*b2) addi r3, 0 ; len == 0 addinq r0, 0 ; (*b1) == 0 addinq r5, 0 ; (*b2) == 0 ldiseq r0,0 ; reteq ; sub r0, r0, r5 ; diff = (*b1)-(*b2) addi r0,0 ; diff!=0 retnq ; addi r1,1 ; ++b1 addi r2,1 ; ++b2 subi r3,1 ; ++len branch strfor ;