The following program tries to copy words from address in register $a0 to the address in register $a1, counting the number of words copied in register $v0. The program stops copying when it finds a word equal to 0. You do not have to preserve the contents of registers $v1, $a0 and $a1. This terminating word should be copied but not counted.addi $v0, $zero, 0 # Initialize countLoop: lw $v1, 0($a0) # Read next word from sourcesw $v1, 0($a1) # Write to destinationaddi $a0, $a0, 4 # Advance pointer to next sourceaddi $a1, $a1, 4 # Advance pointer to next destinationbeq $v1, $zero, Loop # Loop if word copied != zero(a) There are bugs in this program, turn in a bug-free version.(b) How many bytes are required to execute this program? How many instructions are ALU instructions?