ND-1xx Instructions: Difference between revisions
Jump to navigation
Jump to search
(Added new instructions for ND-110) |
(Listed CE- and CX instructions.) |
||
Line 156: | Line 156: | ||
:* IF | :* IF | ||
:* 0 | :* 0 | ||
==Additional instructions in the CE (Commercial Extended) option== | |||
===Decimal Instructions=== | |||
* [[ADDD]] – Add decimal | |||
* [[SUBD]] – Subtract decimal | |||
* [[COMD]] – Compare decimal | |||
* [[SHDE]] – Decimal shift | |||
* [[PACK]] – Convert to packed decimal | |||
* [[UNPACK]] – Convert to unpacked decimal | |||
===Stack Handling Instructions=== | |||
* [[INIT]] – Initialize stack | |||
* [[ENTR]] – Enter stack | |||
* [[LEAVE]] – Leave stack | |||
* [[ELEAV]] – Error leave stack | |||
==Additional instructions in the CX option== | |||
The CX instructions include the CE instructions in improved versions, plus the following CX-only instructions: | |||
* [[MOVEW]] – Move block of words | |||
* [[TSET]] – Test and set | |||
* [[RDUS]] – Read don't use cache | |||
====INTRAN-III Segment Change Instructions==== | |||
* [[SETPT]] – Set page tables | |||
* [[CLEPT]] – Clear page tables | |||
* [[CLNREENT]] – Clear non reentrant | |||
* [[CHREENTPAGES]] – Change not reentrant pages | |||
* [[CLEPU]] – Clear page tables, collect PGU information | |||
==New SINTRAN instructions in ND-110== | ==New SINTRAN instructions in ND-110== |
Revision as of 12:19, 31 July 2009
Instruction Set
Memory Reference Instructions
Store Instructions
Load Instructions
Arithmetic and Logical Instructions
- ADD – Add to A (C, O and Q may also be affected)
- SUB – Subtract from A (C, O and Q may also be affected)
- AND – Logical AND to A
- ORA – Logical inclusive OR to A
- MPY – Multiply integer (O and Q may also be affected)
Double Word Instructions
Floating Instructions
- LDF – Load floating accumulator
- STF – Store floating accumulator
- FAD – Add to floating accumulator (C may also be affected)
- FSB – Subtract from floating accumulator (C may also be affected)
- FMU – Multiply floating accumulator (C may also be affected)
- FDV – Divide floating accumulator (Z and C may also be affected)
Byte Instructions
Execute Instruction
- EXR – Execute instruction found in specified register
Bit Instructions
- BSKP – Skip next location if specified condition is true
- BSET – Set specified bit equal to specified condition
- BSTA – Store and clear K
- BSTC – Store complement and set K
- BLDA – load K
- BLDC – Load bit complement to K
- BANC – Logical AND with bit complement
- BORC – Logical OR with bit complement
- BAND – Logical AND to K
- BORA – Logical OR to K
Shift Instructions
- SHT – Shift T register
- SHD – Shift D register
- SHA – Shift A register
- SAD – Shift A and D registers connected
Subinstructions (Types)
For each shift instruction, one of the following types can be specified
Subinstructions (Direction)
- nil (default) Left shift
- SHR – Right shift
System Control Instructions
- IOF – Interrupt system off
- ION – Interrupt system on
- LWCS – Load Writeable Control Store
- MON – Monitor Call
- PIOF – Memory management and interrupt system off
- PION – Memory management and interrupt system on
- POF – Memory management off
- PON – Memory management on
- REX – Reset extended address mode
- SEX – Set extended address mode
- WAIT – Wait (give up priority)
- OPCOM – Operator's Communication Code
Transfer Instructions
Load Independent Instructions
Inter-level Instructions
Register Operations
Arithmetic Operations, RAD=1:
Subinstruction
Logical Operations, RAD=0:
- SWAP – Register exchange
- RAND – Register logical AND
- REXO – Register logical exclusive OR
- RORA – Register logical OR
Subinstruction
- CLD – Clear destination register before operation
- CM1 – Use complement (ones' complement) of source register as operand.
Combined Instructions:
- EXIT – Return from subroutine
- RCLR – Register clear
- RINC – Register increment
- RDCR – Register decrement
Extended Arithmetic Operations:
Floating Conversion
Memory Examine/Deposit Instructions
Sequencing Instructions
Unconditional Jump
Conditional Jump
- JAP – Jump if A register is positive or zero
- JAN – Jump if A register is negative
- JAZ – Jump if A register is zero
- JAF – Jump if A register is filled (not zero)
- JXN – Jump lf X register is negative
- JXZ – Jump if X register is zero.
- JPC – Count and jump if X register is positive or zero.
- JNC – Count and jump if X register is negative.
Skip Instructions
- SKP – Skip next instruction if specified condition is true
Subinstructions (Specified condition)
Dummys (may be used to obtain easy readability)
- IF
- 0
Additional instructions in the CE (Commercial Extended) option
Decimal Instructions
- ADDD – Add decimal
- SUBD – Subtract decimal
- COMD – Compare decimal
- SHDE – Decimal shift
- PACK – Convert to packed decimal
- UNPACK – Convert to unpacked decimal
Stack Handling Instructions
Additional instructions in the CX option
The CX instructions include the CE instructions in improved versions, plus the following CX-only instructions:
INTRAN-III Segment Change Instructions
- SETPT – Set page tables
- CLEPT – Clear page tables
- CLNREENT – Clear non reentrant
- CHREENTPAGES – Change not reentrant pages
- CLEPU – Clear page tables, collect PGU information
New SINTRAN instructions in ND-110
- CLPT Clear segment from from page tables
- CNREK Clear non re-entrant pages
- ENPT Enter segment in page tables
- INSPL Insert page in page list
- REMPL Remove page from page list
- REPT Enter re-entrant segment in page tables
Sources
- Norsk Data Document ND–06.014 ND-100 REFERENCE MANUAL (ND-06.014.02 rev A)
- Norsk Data Document ND–06.029 ND-110 Instruction Set (ND-06.029.01 rev A)
- Norsk Data Document ND–99.005 ND-100 INSTANT INSTRUCTION CODES (ND-99.005.02 12/84)