
HPC Instruction Set Description
Mnemonic
Description
Action
ARITHMETIC INSTRUCTIONS
ADD
Add
MAaMemI
xMA carryxC
ADC
Add with carry
MAaMemIaC
xMA carryxC
SUB
Subtract without carry
MAbMemI
xMA
SUBC
Subtract with carry
MAbMemIaC
xMA carryxC
MULT
Multiply (unsigned)
MA MemI
xMAX 0xK 0xC
DIV
Divide (unsigned)
MAMemIMA rem
xX 0xK 0xC
DIVD
Divide Double Word (unsigned)
X
MAMemIMA rem
xX 0K CarryxC
IFEQ
If equal
Compare MA
MemI Do next if equal
IFGT
If greater than
Compare MA
MemI Do next if MA l MemI
IFGE
If greater than or equal
Compare MA
MemI Do next if MA e or l MemI
IFGES
If greater than or equal signed
Signed compare MA
MemI Do next if MA e or l MemI
IFGTS
If greater than signed
Signed compare MA
MemI Do next if MA l MemI
AND
Logical and
MA and MemI
xMA
OR
Logical or
MA or MemI
xMA
XOR
Logical exclusive-or
MA xor MemI
xMA
MACZ
Multiply-accumulate From
0
xMRR Ba Xa aMRRxMRR
Zero signed word
OVERFLOW
xMVP or MVN IF BlK THEN AxB
MAC
Multiple-accumulate signed word
Ba
Xa aMRR
xMRR OVERFLOWxMVP or MVN IF BlK then AxB
MULS
Multiply signed
MA MemI
xMRR
ASHR
Arithmetic right
MRR2 IMM
xMRR or MRR2 AxMRR
MEMORY MODIFY INSTRUCTIONS
INC
Increment
Mema1
xMem
DECSZ
Decrement skip if 0
Memb1
xMem Skip next if Mem e 0
BIT INSTRUCTIONS
SBIT
Set bit
1
xMembit
RBIT
Reset bit
0
xMembit
IFBIT
If bit
If Membit is e 1 do next instruction
IFNBIT
If not bit
If Membit is e 0 do next instruction
MEMORY TRANSFER INSTRUCTIONS
LD
Load
MemI
xMA
Load incrdecr X
Mem(X)
xA Xg1 (or 2)xX
LD B
mode
Load B
MemI
xB
LD X
mode
Load X
MemI
xX
LD K
mode
Load K
MemI
xK
ST
Store to Memory
A
xMem
X
Exchange
A
xMem
Exchange incrdecr X
A
xMem(X) Xg1 (or 2)xX
PUSH
Push Memory to Stack
W
xW(SP) SPa2xSP
FETCH
Dummy read
Gen addressed byte is read and discarded
POP
Pop Stack to Memory
SPb2
xSP W(SP)xW
LDS
Load A incrdecr B
Mem(B)
xA Bg1 (or 2)xB
Skip on condition
Skip next if B greaterless than K
XS
Exchange incrdecr B
MEM(B)
wxA Bg1 (or 2)xB
Skip on condition
Skip next if B greaterless than K
Notes
W is 16-bit word of memory
MA is Accumulator A or direct memory (8- or 16-bit)
Mem is 8-bit byte or 16-bit word of memory
MemI is 8- or 16-bit memory or 8- or 16-bit immediate data
imm is 8-bit or 16-bit immediate data
imm8 is 8-bit immediate data only
30