A good answer might be:

The PC contains the address that follows the address of the jump instruction.

Most Jumps (and Branches) are Local

Most jumps and branches are to nearby addresses. The jump address and the address of the instruction following the jump instruction are likely to have the same high-order four bits. So the high-order four bits of the PC are likely to be the ones needed for the target address.

Of course, an assembly language programmer must be careful to make sure that this is so. When a compiler translates a source program into machine language it also must pay attention to addresses. For tiny programs such as you will write for this course the high for bits of the PC will always be the high four bits of the address that you want.

A jump instruction can't jump to any arbitrary location in the full 32-bit address space It must jump to an address within the following range:

wxyz 0000 0000 0000 0000 0000 0000 0000
                   .
                   .
                   .
wxyz 1111 1111 1111 1111 1111 1111 1100

Here, wxyz represents the high-order four bits of the PC. Almost always the jump instruction and the jump address are both within this range.

All these details may look terrible to you at this point. Don't worry: (1) its not as bad as it looks, and (2) usually the assembler does all the work. (But for now, you get to do the work).

QUESTION 6:

Here is a great idea! Why not implement the jump instruction without using an explicit op-code? Build the processor so that when execution encounters a 32-bit address it automatically jumps to that address.

Will this scheme work?