SIC is a type of machine design, which is used to illustrate the features and concepts of most commonly encountered computer hardware. The memory in a simplified instructional computer is organized as a sequence of 8-bit bytes (1 byte = 8 bits). It also contains an enhanced version of the machine, which is known as SIC/XE. This new version includes some additional features such as interrupts, protective memory features, addressing modes, virtual memory, and floating-point instructions. There is no available bit to represent the floating-point numbers in SIC, but it exists in the SIC/XE. When we program the SIC (Simplified instructional computer), we are required various instructions to do this and these instructions are described as follows:
Instructions |
Operand |
Opcode |
Explanation |
ADD |
M |
18 |
The ADD instruction is used to add register A with the memory M. The result of add operation will be stored in the register. The syntax of ADD instruction is described as follows: A = A + M |
AND |
M |
40 |
The AND instruction performs the 'AND' operation with the register A and memory M. The result of 'AND' operation will be stored in the register. The syntax of AND instruction is described as follows: A = A AND M |
COMP |
M |
28 |
The COMP instruction is used to compare the data of register A with the data of memory. It uses conditional code to save the result. The syntax of COMP instruction is described as follows: compares A and M |
DIV |
M |
24 |
The DIV instruction is used to divide the register A by the memory M. The result of add operation will be stored in the register. The syntax of DIV instruction is described as follows: A = A/M |
J |
M |
3C |
The JUMP instruction is used to load the new value of memory into the PC register. The syntax of JUMP instruction is described as follows: PC = M |
JEQ |
M |
30 |
JEQ refers to jump if equal. It is used to load a new value of memory into PC if condition code (CC) is set to =. The syntax of JEQ is described as follows: If CC set to =, PC = M |
JGT |
M |
34 |
JGT refers to jump if greater than. It is used to load a new value of memory into PC if condition code (CC) is set to >. The syntax of JGT is described as follows: If CC set to >, PC = M |
JLT |
M |
38 |
JLT refers to jump if less than. It is used to load a new value of memory into PC if condition code (CC) is set to <. The syntax of JLT is described as follows: If CC set to <, PC = M |
JSUB |
M |
48 |
It is used to jump and place the return address in register L. The syntax of JSUB is described as follows: L = PC ; PC = M |
LDA |
M |
00 |
LDA stands for Load accumulator. It is used to load the contents from memory into the accumulator register. The syntax of LDA is described as follows: A = M |
LDCH |
M |
50 |
LDCH instruction is used to load the data byte from memory into register A or accumulator. The syntax of LDCH is described as follows: A[RMB] = M[RMB] |
LDL |
M |
08 |
LDL is used to load the data of memory into register L. The syntax of LDL is described as follows: L = M |
LDX |
M |
04 |
Here, LDX stands for Load Doubleword Indexed. This instruction is used to load a doubleword into a general-purpose register from the specified memory location. The syntax of LDX is described as follows: X = M |
MUL |
M |
20 |
The MUL instruction is used to multiply the register A and the memory M. The result of 'Multiply' operation will be stored in the register. The syntax of MUL instruction is described as follows: A = A * M |
OR |
M |
44 |
The OR instruction performs the 'OR' operation with the register A and memory M. The result of 'OR' operation will be stored in the register. The syntax of OR instruction is described as follows: A = A OR M |
RD |
M |
D8 |
RD instruction is used to read the data specified by memory. The result of this operation will be stored in register A. The syntax of RD instruction is described as follows: A[RMB] = data specified by M[RMB] |
RSUB |
|
4C |
The RSUB instruction will be returned with the help of jumping to the address contained in register L. The syntax of RSUB instruction is described as follows: PC = L |
STA |
M |
0C |
STA instruction is used to store the contents of accumulator into memory. The syntax of STA instruction is described as follows: M = A |
STCH |
M |
54 |
The STCH instruction is used to store the byte that was read from the register. The syntax of STCH instruction is described as follows: M[RMB] = A[RMB] |
STL |
M |
14 |
The STL is used to store the linkage register with the contents of memory. The syntax of STL is described as follows: M = L |
STX |
M |
10 |
STX stands for "STore X". This instruction is used to store a copy of byte, which is contained by the X index register, into memory. The syntax of STX is described as follows: M = X |
SUB |
M |
1C |
The SUB instruction is used to subtract the register A and the memory M. The result of 'Subtraction' operation will be stored in the register. The syntax of SUB instruction is described as follows: A = A - M |
TD |
M |
E0 |
It uses the status word and conditional code to test whether the device is ready to send or receive a byte of data. If CC (conditional code) is <, in this case, the device will be ready. If CC is >, in this case, the device will be busy. |
TIX |
M |
2C |
The TIX instruction is used to compare the X index address with the memory. Where X = X + 1. It will show the result by setting CC (Conditional code). |
WD |
M |
DC |
WD instruction is used to write a byte into the device from the register. The syntax of WD is described as follows: Device specified by M[RMB] = A[RMB] |