Dark Mode
Image

COA_Misc

Instruction set used in Simplified Instructional Computer

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]

Comment / Reply From