Write a PEP/8 machine language simulator that simulates the PEP/8 computer and instruction set for only the following instructions:
GOAL: Write a PEP/8 machine language simulator that simulates the PEP/8 computer and instruction set for only the following instructions:
Bitwise invert r
Arithmetic shift left r
Arithmetic shift right r
Rotate left r
Rotate right r
Decimal input trap
Decimal output trap
Add to r
Subtract from r
Bitwise AND to r
Bitwise OR to r
Load r from memory
Load byte from memory
Store r to memory
Store byte r to memory
Here are some specifics.
1. Use an array to represent the memory.
2. Use variables or arrays for the PEP8 registers. I recommend putting it all into a structure. I also recommend using an array of 16 bit values for A, X, PC, SP so that you can use the r bit from the instructions to point directly to A or X. You do NOT have to include the Status bits.
3. Use unions of structures to break up the registers and instructions into the correct bits (for example, use a structure that can be unioned to break up the 8 bit specifier into the following bit combos (4, 1, 3), (5, 3), (7, 1), (8). This will allow you to instantly extract the instruction, register and addressing modes from each instruction. Also use a union to break up the 16 bit operand into two 8 bit values.
4. Have the instructions be inputted either through the command line or better yet, through a file, in the following format for each instruction:
a. 6 Hexadecimal characters per instruction
5. After each instruction in the program is executed, output the PEP8 machine register values.