Problem 1b), How do we do the analysis since we do not know the contents of the array? Just do a worst case analysis in this situation (and state this assumption).
Problem 1b), Can we use approximations in calculating the number of instructions given that a portion of code contributes far more significantly to the total instruction count than others? Yes, but you must first show that one loop consumes more cycles compared to the others, and you also need to state that your approximation considers only that loop.
Problem 1c) What is the cycle time for the jump instruction? You do not need to know the cycle time for the jump instruction to answer this question. Using your answer for part b, you will see that you can get an estimate of the time it takes to execute the code without knowing the cycle time of the jump instruction.
Problem 1d) What is the cycle time for the rpt instruction? The rpt instruction takes 2 cycles.
Problem 2,3) Can I use pseudoinstructions in my code? Yes, you can though I
would suggest the following -
1. Understand why some instructions are "pseudoinstructions"
and what makes them "different" from other instructions.
2. Consider if you can write the code without using pseudoinstructions -
eg. beqz can be expressed as beq with either Rs or Rt set to $zero.
Problem 3) Are big and small constant numbers? Yes, they are immediate numbers. Big is 32 bits long and small is 16 bits long.
Problem 3) Can I use notation that takes only the upper 16 bits of a number? You can use the commands upper(big) and lower(big) to get the upper and lower sets of 16 bits from the number big.