9/26/04

A student writes:

     Professor Patt,
     I'm having trouble with question number 10. The hint is even more
     confusing. Are we or aren't we talking about the LDR operation? If
     so, what are the operands (in which order do the R1 and R2 go)?

We are talking about whatever instruction is to be executed next. If you look at the contents of the "selected" registers and "selected" memory locations, you should be able to figure out what instruction will be executed next. I would not use the Hint to guess what that instruction might be. However, I might use something else. What might that be?

     Also, I heard someone ask this question, so it confused me a bit:
     Is the PC incremented negatively or positively? That is, does it start
     at one and go to 10, or is it the other way around?

It starts wherever the system software decides to put it, and keeps incrementing it by +1 for each instruction executed, except when the PC is changed during the execution of the instruction, if that instruction is a control instruction.

For example, if system software decides to put the program starting at location 10,000, and the instructions are Load, Add, And, Load, Add, Store, followed by a control instruction that wants you to next execute the instruction at 10,425, then at the start of the instruction the PC contains: 10,000, 10,001, 10,002, 10,003, 10,004, 10,005, 10,006, 10,425.

Hope this helps.
Yale Patt

     Thanks,
     << name withheld >>