Data General NOVA ®
Memory Reference Instructions


    This page describes the memory reference class of instructions in the Nova set. Other pages describe:


    Since the Data General Nova operates as a load/store machine it's fairly easy to lunp all the memory access instructions into a single basic class, which is what I've done here. The instructions listed here are the only ones which manipulate main memory directly, and all do so using a fairly simple addressing scheme. The way the Nova addresses memory was covered in detail in the Introduction to the machine.

    All the instructions in this class have a common format:

                         I          /---------- Displacement ----------\
                       /   \       /                                    \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \                  /    \       /
    \--- Function ---/       Index  

    In general, instructions will be presented by their assembler mnemonics, followed by a short discussion of the instruction's function.


Load/Store Instructions


Load Accumulator (LDA)

              Accumulator    Index
               /       \   /       \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \           /       \   /       \                                     /
    \  0 0 1  /          I          \---------- Displacement -----------/

   

Function:
The LDA instruction takes the data from the memory location addressed by "E", the effective address, and places it into the AC specified by bits 3 and 4. The previous contents of the AC are lost; the memory location and carry bit remain unchanged.

Assembler Syntax:
LDA AC, [@]D[, I]


Store Accumulator (STA)

              Accumulator    Index
               /       \   /       \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \           /       \   /       \                                     /
    \  0 1 0  /          I          \---------- Displacement -----------/

   

Function:
The STA instruction stores the contents of the AC specified by bits 3 and 4 into the location specified by "E", the effective address. The previous contents of "E" are lost; the AC and carry are unaffected.

Assembler Syntax:
STA AC, [@]D[, I]


Program Flow Instructions


Jump (JMP)

                         I          /---------- Displacement ----------\
                       /   \       /                                    \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \                  /    \       /
    \    0 0 0 0 0   /       Index  
Function:
The JMP instruction takes the computed value of "E" and places it in the Program Counter (PC) causing the flow of the program to resume at "E". The previous contents of the PC are lost; the carry bit is unchanged.

Assembler Syntax:
JMP [@]D[, I]


Jump to Subroutine (JSR)

                         I          /---------- Displacement ----------\
                       /   \       /                                    \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \                  /    \       /
    \    0 0 0 0 1   /       Index  
Function:
The JSR instruction places the 15-bit value in the Program Counter (PC) plus one and places it in AC3 then takes the computed value of "E" and places it in the PC causing the flow of the program to resume at "E". The previous contents of the PC and AC3 are lost; the carry bit is unchanged.

A return is accomplished via a "JMP 0,3" instruction.

Assembler Syntax:
JSR [@]D[, I]


Increment/Decrement Memory Instructions


Increment and Skip if Zero (ISZ)

                         I          /---------- Displacement ----------\
                       /   \       /                                    \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \                  /    \       /
    \    0 0 0 1 0   /       Index  
Function:
The ISZ instruction increments the contents of the location addressed by "E" by one and skips the next instruction if the result equals zero. The carry bit is unaffected.

Assembler Syntax:
ISZ [@]D[, I]


Decrement and Skip if Zero (DSZ)

                         I          /---------- Displacement ----------\
                       /   \       /                                    \
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
   +---+---+---+---+---+---+---+---+---+---+----+----+----+----+----+----+
   \                  /    \       /
    \    0 0 0 1 1   /       Index  
Function:
The DSZ instruction decrements the contents of the location addressed by "E" by one and skips the next instruction if the result equals zero. The carry bit is unaffected.

Assembler Syntax:
DSZ [@]D[, I]


    This page described the Load/Store instructions of the Data General Nova minicomputer. Other pages describe:



[ Museum Lobby ] [ Museum Catalogue ] [ Carl's Homepage ]


Copyright © 1998 - 2003, Carl R. Friend. All rights reserved.

Comments to: carl.friend@rcsri.org
Last Modified: Sun Sep 13 11:35:43 EDT 1998