Difference between revisions of "Simple Computer Simulator Instruction-Set"

From dftwiki3
Jump to: navigation, search
(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

  • 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.

COMP number

84

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.

DIV number

44

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.

LOAD number

4

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.

MUL number

40

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.

SUB number

32

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.



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