### A good answer might be:

> Address | Instruction (details omitted) | PC just after this instruction has executed (at the bottom of the cycle)
> --- | --- | ---
> ............... | ........... | 00450000
> 00450000 | load | 00450004
> 00450004 | load | 00450008
> 00450008 | add | 0045000C
> 0045000C | store | 00450010
> 00450010 | jump 0x00450000 | 00450014
> 00450014 | no-op | 00450000

# The Jump Instruction

In our schematic programs, the "jump" instruction gave a 32-bit address that goes into the PC.

How does a 32-bit instruction specify a 32-bit address? Some of the instruction's bits must be used for the op-code. Here is the assembly language version of the jump instruction.

>     j    target     # after a delay of one machine cycle,
>                     # PC  <-- address of target

Here is the machine language form of the instruction:

>        6              26
>     000010 00000000000000000000000000    -- fields of the instructuion

>     opcode         target                -- meaning of the fields

There is room in the instruction for a 26-bit address. The 26-bit target address field is transformed into a 32-bit address. Here is how this is done:

Instructions always start on an address that is a multiple of four (they are word-aligned). So the low order two bits of a 32-bit instruction address are always "00". Shifting the 26-bit target left two places results in a 28-bit word-aligned address. Now the high-order four bits in the PC are concatenated to the high-order end of the 28-bit address to form a 32-bit address.

### QUESTION 5:

While this is going on, what instruction's address is in the PC?