Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "4241.h"
- /*
- R0 - 4-BIT REGISTER
- R1 - 4-BIT REGISTER
- <DATA> - THE VALUE OF THE ADDRESS IN MEMORY AFTER THE TWO-BYTE INSTRUCTION
- 0 1 2 3
- [ ] [ ] [ ] [ ]
- PC `----------^ - ONE BYTE INSTRUCTION
- PC `----------------^ - TWO BYTE INSTRUCTION
- --------------------------------------------------------------------------------------------
- ONE BYTE INSTRUCTIONS TWO BYTE INSTRUCTIONS
- 0 - HAULT (HAULTS PROGRAM) 8 - PRINT <DATA>
- 1 - ADD (R0 = R0 + R1) 9 - LOAD VALUE OF ADDRESS <DATA> INT R0
- 2 - SUBTRACT (R0 = R0 - R1) 10 - LOAD VALUE OF ADDRESS <DATA> INTO R1
- 3 - INCREMENT R0 11 - STORE VALUE R0 INTO ADDRESS <DATA>
- 4 - INCREMENT R1 12 - STORE VALUE R1 INTO ADDRESS <DATA>
- 5 - DECREMENT R0 13 - JUMP TO ADDRESS <DATA>
- 6 - DECREMENT R1 14 - JUMP TO ADDRESS <DATA> IF R0 == 0
- 7 - SWAP REGISTERS (R0 <=> R1) 15 - JUMP TO ADDRESS <DATA> IF R0 != 0
- --------------------------------------------------------------------------------------------
- */
- Chip_4241::Chip_4241(){
- pc = 0;
- HAULT = false;
- A.REG, B.REG = 0;
- CELL[0].SLOT = 0;
- CELL[1].SLOT = 0;
- CELL[2].SLOT = 0;
- CELL[3].SLOT = 0;
- CELL[4].SLOT = 0;
- CELL[5].SLOT = 0;
- CELL[6].SLOT = 0;
- CELL[7].SLOT = 0;
- CELL[8].SLOT = 0;
- CELL[9].SLOT = 0;
- CELL[10].SLOT = 0;
- CELL[11].SLOT = 0;
- CELL[12].SLOT = 0;
- CELL[13].SLOT = 0;
- CELL[14].SLOT = 0;
- CELL[15].SLOT = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement