"E97" Handbook: INSTRUCTION SET

Go to:
home intro index

Table ¹ 1: Double address instructions

modifier operation
code
OP1 OP2 comments
X0XX no operation
X1XX op1 ==> op2
X2XX op2 + op1 ==> op2
X3XX op2 - op1 ==> op2
X4XX op2 - op1 (compare)
X5XX op2 * op1 ==> op2
X6XX op2 / op1 ==> op2
X7XX op2 AND op1 ==> op2
X8XX op2 OR op1 ==> op2
X9XX op2 XOR op1 ==> op2
XAXX port1 ==> op2
XBXX op1 ==> port2
XCXX jump to absolute address
XDXX branch to relative address
XE*X (single address instructions, see Table ¹ 2)
XFXX halt

Binary modifier codes for jump and branch instructions

0000 -- return from subroutine 0100 -- Z = 0 (<>0)
0001 -- unconditional jump or branch 0101 -- Z = 1 (=0)
0010 -- N = 0 (>=0) 0110 -- Z = 1 or N = 1 (<=0)
0011 -- N = 1 (<0) 0111 -- Z = 0 and N = 0 (>0)
1001 -- subroutine call
Go to:
home intro index top


Table ¹ 2: Single-address instructions

modifier operation
code
OP1 comments
XE1X NOT op1
XE2X op1 ==> stack
XE3X stack ==> op1
XE4X SP + op1 ==> SP
XE5X SP - op1 ==> SP
XE6X op1 ==> SP
XE7X SP ==> op1
XE80 PS ==> stack
XE90 stack ==> PS
XEAX left shift op1
XEBX right shift op1
XECX right arithmetic shift op1

Go to:
home intro index top