You've got to be pulling my chain... (Ethernet)

From: Pete Turnbull <pete_at_dunnington.u-net.com>
Date: Sat Apr 11 12:02:48 1998

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 _at_#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, _at_#0173000, opcode 010037,173000 which stores R0 in 173000).

-- 
Pete						Peter Turnbull
						Dept. of Computer Science
						University of York
Received on Sat Apr 11 1998 - 12:02:48 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:30:40 BST