Difference between revisions of "Simple Computer Simulator Instruction-Set"
(→Instructions Using a Single Constant) |
(→Instructions Using a Single Constant) |
||
Line 20: | Line 20: | ||
00011000 | 00011000 | ||
| | | | ||
− | * | + | * This instruction adds the ''number'' to the one already in the accumulator. For example, if the accumulator register already contains 10, and the processor executes '''ADD ''3'' ''' the result is that the accumulator will contain ''13'' after the instruction. |
|- | |- | ||
| | | | ||
Line 29: | Line 29: | ||
01010100 | 01010100 | ||
| | | | ||
− | * | + | * This instruction compares the ''number'' to the one already in the accumulator. For example, if the accumulator register already contains 10, and the processor executes '''COMP ''3'' ''' the result is the comparison of ''10'' to ''3''. ''10'' is greater, and is not equal to ''3''. This will allow a '''JG'' (jump if greater instruction) to jump to its target, and will prevent a '''JEQ''' instruction from jumping. |
|- | |- | ||
| | | | ||
Line 38: | Line 38: | ||
00101100 | 00101100 | ||
| | | | ||
− | * | + | * This instruction divides the contents of the accumulator by ''number'', and keeps the integer part of the result. For example, if the accumulator register already contains 10, and the processor executes '''DIV ''4'' ''' the result is that the accumulator will contain ''2'' after the instruction. |
+ | |||
|- | |- | ||
| | | | ||
Line 47: | Line 48: | ||
00000100 | 00000100 | ||
| | | | ||
− | * | + | * This instruction puts the ''number'' into the accumulator. Whatever was in the accumulator prior to the operation is lost. , if the accumulator register already contains 10, and the processor executes '''ADD ''3'' ''' the result is that the accumulator will contain ''13'' after the instruction. |
+ | |||
|- | |- | ||
| | | | ||
Line 56: | Line 58: | ||
00101000 | 00101000 | ||
| | | | ||
− | * | + | *This instruction multiplies the contents of the accumulator by ''number'', and replaces the contents of the accumulator by the result. For example, if the accumulator register already contains 10, and the processor executes '''MUL ''4'' ''' the result is that the accumulator will contain ''40'' after the instruction. |
|- | |- | ||
| | | | ||
Line 65: | Line 67: | ||
00100000 | 00100000 | ||
| | | | ||
− | * | + | *This instruction subtracts the ''number'' from the one already in the accumulator. For example, if the accumulator register already contains 10, and the processor executes '''SUB ''3'' ''' the result is that the accumulator will contain ''7'' after the instruction. |
+ | |||
|} | |} |
Revision as of 14:16, 27 August 2014
--D. Thiebaut (talk) 16:57, 26 August 2014 (EDT)
Instructions Using a Single Constant
These instructions operate with a single number (we refer to them as constants) that is either loaded into, added, or subtracted from the accumulator register.
Instruction | Code (decimal) |
Code ( binary) |
Description |
---|---|---|---|
ADD number |
24 |
00011000 |
|
COMP number |
84 |
01010100 |
|
DIV number |
44 |
00101100 |
|
LOAD number |
4 |
00000100 |
|
MUL number |
40 |
00101000 |
|
SUB number |
32 |
00100000 |
|
Memory Instructions
Instruction | Code (decimal) |
Code ( binary) |
Description |
---|---|---|---|
ADDX |
28 |
00011100 |
|
ADDXm |
30 |
00011110 |
|
ADDXx |
29 |
00011101 |
|
ADDm |
26 |
00011010 |
|
ADDx |
25 |
00011001 |
|
COMPX |
92 |
01011100 |
|
COMPXm |
94 |
01011110 |
|
COMPXx |
93 |
01011101 |
|
COMPm |
86 |
01010110 |
|
COMPx |
85 |
01010101 |
|
DIVm |
46 |
00101110 |
|
DIVx |
45 |
00101101 |
|
HALT |
127 |
01111111 |
|
JEQ |
68 |
01000100 |
|
JLT |
72 |
01001000 |
|
JUMP |
64 |
01000000 |
|
LOADX |
8 |
00001000 |
|
LOADXm |
10 |
00001010 |
|
LOADXx |
9 |
00001001 |
|
LOADm |
6 |
00000110 |
|
LOADx |
5 |
00000101 |
|
MULm |
42 |
00101010 |
|
MULx |
41 |
00101001 |
|
NOP |
0 |
00000000 |
|
STOREXm |
22 |
00010110 |
|
STOREXx |
21 |
00010101 |
|
STOREm |
18 |
00010010 |
|
STOREx |
17 |
00010001 |
|
SUBX |
36 |
00100100 |
|
SUBXm |
38 |
00100110 |
|
SUBXx |
37 |
00100101 |
|
SUBm |
34 |
00100010 |
|
SUBx |
33 |
00100001 |
|
TAX |
79 |
01001111 |
|
TXA |
83 |
01010011 |
|