Simple Computer Simulator Instruction-Set

From dftwiki3
Revision as of 14:26, 27 August 2014 by Thiebaut (talk | contribs) (Memory Instructions)
Jump to: navigation, search

--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 prevent a JLT (jump if less than) to jump to its target, and will prevent a JEQ instruction from jumping. On the other hand, if the accumulator had contained 2, then a COMP 2 would have allowed a subsequent JEQ instruction to jump to its target.

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.



Number-in-Memory Instructions


Instruction Code
(decimal)
Code
( binary)
Description

ADDm

26

00011010

COMPm

86

01010110

DIVm

46

00101110

LOADm

6

00000110

MULm

42

00101010

STOREm

18

00010010

SUBm

34

00100010


Number-with-Address-in-Index Instructions


Instruction Code
(decimal)
Code
( binary)
Description

ADDX

28

00011100

ADDXm

30

00011110

ADDXx

29

00011101

ADDx

25

00011001

COMPX

92

01011100

COMPXm

94

01011110

COMPXx

93

01011101

COMPx

85

01010101


DIVx

45

00101101

HALT

127

01111111

JEQ

68

01000100

JLT

72

01001000

JUMP

64

01000000

LOADX

8

00001000

LOADXm

10

00001010

LOADXx

9

00001001

LOADx

5

00000101


MULx

41

00101001

NOP

0

00000000

STOREXm

22

00010110

STOREXx

21

00010101

STOREx

17

00010001

SUBX

36

00100100

SUBXm

38

00100110

SUBXx

37

00100101

SUBx

33

00100001

TAX

79

01001111

TXA

83

01010011