The following code fragment processes two arrays and produce
The following code fragment processes two arrays and produces an important value in register $v0. Assume that each array consists of 2500 words indexed 0 through 2499, that the base addresses of the arrays are stored in $a0 and $a1 respectively, and their sizes (2500) are stored in $a2 and $a3, respectively. Add comments to the code and describe in one sentence what this code does. Specifically, what will be returned in $v0?
 sll $a2, $a2, 2
 sll $a3, $a3, 2
 add $v0, $zero, $zero
 add $t0, $zero, $zero
 outer: add $t4, $a0, $t0
 lw $t4, 0($t4)
 add $t1, $zero, $zero
 inner: add $t3, $a1, $t1
 lw $t3, 0($t3)
 bne $t3, $t4, skip
 addi $v0, $v0, 1
 skip: addi$ t1, $t1, 4
 bne $t1, $a3, inner
 addi $t0, $t0, 4
 bne $t0, $a2, outer
Solution
sll $a2, $a2, 2
 sll $a3, $a3, 2
 add $v0, $zero, $zero
 add $t0, $zero, $zero
 outer: add $t4, $a0, $t0    // address of first array[a]
 lw $t4, 0($t4)
 add $t1, $zero, $zero
 inner: add $t3, $a1, $t1 //address of second array[b]
 lw $t3, 0($t3)
 bne $t3, $t4, skip   //compare array a and array b
 addi $v0, $v0, 1
 skip: addi$ t1, $t1, 4
 bne $t1, $a3, inner
 addi $t0, $t0, 4
 bne $t0, $a2, outer
the code is similar to string compare and finds the number of matching elements between array a and array b and returns this number

