Vole Machine Language Playground

Op-code

code Operand Description
0x1 RXY LOAD the register R with the bit pattern found in the memory cell whose address is XY.
Example: 0x14A3 would cause the contents of the memory cell located at address 0xA3 to be placed in register 0x4.
0x2 RXY LOAD the register R with the bit pattern XY.
Example: 0x20A3 would cause the value 0xA3 to be placed in register 0.
0x3 RXY STORE the bit pattern found in register R in the memory cell whose address is XY.
Example: 0x35B1 would cause the contents of register 0x5 to be placed in the memory cell whose address is 0xB1.
0x4 0RS MOVE the bit pattern found in register R to register S.
Example: 0x40A4 would cause the contents of register 0xA to be copied into register 0x4.
0x5 RST ADD the bit patterns in registers S and T as though they were two’s complement representations and leave the result in register R.
Example: 0x5726 would cause the binary values in registers 0x2 and 0x6 to be added and the sum placed in register 0x7.
0x6 RST ADD the bit patterns in registers S and T as though they represented values in floating-point notation and leave the floating-point result in register R.
Example: 0x634E would cause the values in registers 0x4 and 0xE to be added as floating-point values and the result to be placed in register 0x3.
0x7 RST OR the bit patterns in registers S and T and place the result in register R.
Example: 0x7CB4 would cause the result of ORing the contents of registers 0xB and 0x4 to be placed in register 0xC.
0x8 RST AND the bit patterns in registers S and T and place the result in register R.
Example: 0x8045 would cause the result of ANDing the contents of registers 0x4 and 0x5 to be placed in register 0x0.
0x9 RST XOR the bit patterns in registers S and T and place the result in register R.
Example: 0x95F3 would cause the result of XORing the contents of registers 0xF and 0x3 to be placed in register 0x5.
0xA R0X ROTATE the bit pattern in register R one bit to the right X times. Each time, place the bit that started at the low order end at the high-order end.
Example: 0xA403 would cause the contents of register 0x4 to be rotated 3 bits to the right in a circular fashion.
0xB RXY JUMP to the instruction located in the memory cell at address XY if the bit pattern in register R is equal to the bit pattern in register number 0. Otherwise, continue with the normal sequence of execution. (The jump is implemented by copying XY into the program counter during the execute phase.)
Example: 0xB43C would first compare the contents of register 0x4 with the contents of register 0x0. If the two were equal, the pattern 0x3C would be placed in the program counter so that the next instruction executed would be the one located at that memory address. Otherwise, nothing would be done and program execution would continue in its normal sequence.
0xC 000 HALT execution.
Example: 0xC000 would cause program execution to stop.

Playground

machine


program counter: 0x 00 | 0b 0000 0000

registers

0 0x00
1 0x00
2 0x00
3 0x00
4 0x00
5 0x00
6 0x00
7 0x00
8 0x00
9 0x00
A 0x00
B 0x00
C 0x00
D 0x00
E 0x00
F 0x00

memory

editor

123