On Apr 11, 14:11, J. Maynard Gelinas wrote:
Alright, so what we have is the last 4KW used
up for stack
space, register mapping, and IO mapping. I would guess the
first 4KW were used up by the boot prom and monitor, which
leaves about 12KW for an application jump table and
initialization, the rest for memory mapped windows to the
MMU... do I have it right?
I'm not sure how you did the arithmetic :-) 4KW (8KB) is used for the "I/O
Page" which *includes* the boot PROMs. Stack can be anywhere.
QUOTE:
0 000 000 001 ddd ddd -- JMP JuMP
Loads the destination address into the PC, thus effecting an
unconditional jump.
Why is the jump destination address only six bits
long?
Jeesh, I hope I'm not asking the obvious....
Because the DDD DDD specifies a register (1 of 8) and address mode (1 of 8) to
use. So, you'll often see something like JMP @#0173000, which is represented
in two words 000137,173000. In this example, the address mode is 3
(auto-increment deferred, deferred = indirect) and the register to use is R7,
which is the PC.
So it means "jump to the address given in the word the PC points to". In other
words, that's how you code an absolute jump. The reason for the auto-increment
is that that mode is the general way of getting immediate data, and in the
general case you do need to increment the PC after the read (think about MOV
R0, @#0173000, opcode 010037,173000 which stores R0 in 173000).
--
Pete Peter Turnbull
Dept. of Computer Science
University of York