1. How does a stack allow a procedure to call itself, without overwriting the old value of a local variable? 2. Explain how LV and SP are used to reference a local variable for a method. 3. Explain how a stack can be used to store the operands for an arithmetic operation. What should be done with the operands on the stack after the arithmetic operation is done? 4. Where should the result of an arithmetic operation be placed? 5. What does CPP point to? 6. Does the LV stay the same throughout an entire program, or does it change? 7. Does the LV stay the same throughout an entire method, or does it change? 8. Does the SP stay the same throughout an entire program, or does it change? 9. Does the SP stay the same throughout an entire method, or does it change? 10. How is the method area read differently than the other areas of memory? 11. How is LV + 1 interpreted differently than PC + 1? 12. Which of the IJVM instructions are 1 byte long? 13. Which of the IJVM instructions are 2 bytes long? 14. Which of the IJVM instructions are 3 bytes long? 15. Which of the IJVM instructions are 4 bytes long? 16. How many bytes are the arithmetic and logical instructions? Where are there operands? Where is the result stored? 17. How do the conditional branches find the address for the branch? 18. What does the WIDE instruction do? 19. What is the first parameter for any method? 20. How is the displacement in the call to INVOKEVIRTUAL interpreted? 21. What is the value of the first two bytes of a method? 22. What is the value of the third and fourth bytes of a method? 23. Is the displacement in the instruction big endian or little endian? 24. How is the location to store the old PC calculated? 25. What is left on the stack after a method returns? 26. How is the PC restored after the return from a method? 27. How many of the IJVM instructions are for I/O? 28. Explain how i=j+k is written in byte code. What assumption is made about the locations of i, j and k? 29. Explain how if (i==3) is written in byte code. How is the offset in the instruction calculated? Is the offset little endian or big endian? 30. Which block of code is written first in the IJVM example, the if or the else? 31. Explain how j=j-1 is written in byte code. 32. Explain how k=0 is written in byte code. 33. Explain how the GOTO statement calculates the offset to the next instruction. Is the offset little endian or big endian?