# .sect .text; .sect .rom; .sect .data; .sect .bss /* * Set comparison Returns 0 if the sets were equal. * Stack: ( a b size -- a!=b ) */ .sect .text .define .cms .cms: lw r4, 0(sp) ! r4 = size; sp points at b-word addu r5, sp, r4 ! r5 points at a-word addu r6, r5, r4 ! r6 is final sp-word srl r4, r4, 2 ! r4 = count of words li r8, 1 ! result 1: lw at, 4(r5) ! load a lw r7, 4(sp) ! load b bne at, r7, exit ! branch if not equal nop addiu r5, r5, 4 addiu sp, sp, 4 addiu r4, r4, -1 bne r4, zero, 1b nop li r8, 0 ! Update result. exit: mov sp, r6 sw r8, 0(sp) jr ra nop