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:

InstructionsOperandOpcodeExplanation
ADDM18The 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
ANDM40The 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
COMPM28The 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
DIVM24The 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
JM3CThe 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
JEQM30JEQ 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
JGTM34JGT 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
JLTM38JLT 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
JSUBM48It is used to jump and place the return address in register L. The syntax of JSUB is described as follows:
L = PC ; PC = M
LDAM00LDA 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
LDCHM50LDCH 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]
LDLM08LDL is used to load the data of memory into register L. The syntax of LDL is described as follows:
L = M
LDXM04Here, 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
MULM20The 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
ORM44The 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
RDMD8RD 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]
RSUB4CThe 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
STAM0CSTA instruction is used to store the contents of accumulator into memory. The syntax of STA instruction is described as follows:
M = A
STCHM54The 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]
STLM14The STL is used to store the linkage register with the contents of memory. The syntax of STL is described as follows:
M = L
STXM10STX 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
SUBM1CThe 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
TDME0It 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.
TIXM2CThe 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).
WDMDCWD 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]





Latest Courses