This project aims to emulate the 8085 microprocessor and implement all its instructions with appropriate flag handling. Below is a checklist of all 8085 instructions grouped by categories.
| Instruction | Description | Status |
|---|---|---|
| MOV | Move data between registers. | ✅ Done |
| MVI | Move immediate data. | ✅ Done |
| LDA | Load accumulator directly. | ✅ Done |
| STA | Store accumulator directly. | ✅ Done |
| LDAX | Load accumulator indirectly. | ✅ Done |
| STAX | Store accumulator indirectly. | ✅ Done |
| LHLD | Load H-L pair directly. | ✅ Done |
| SHLD | Store H-L pair directly. | ✅ Done |
| XCHG | Exchange H-L with D-E. | ✅ Done |
| PUSH | Push register pair onto the stack. | ✅ Done |
| POP | Pop register pair from the stack. | ✅ Done |
| OUT | Output to port. | ✅ Done |
| IN | Input from port. | ✅ Done |
| Instruction | Description | Status |
|---|---|---|
| ADD | Add register to accumulator. | ✅ Done |
| ADC | Add register to accumulator with carry. | ✅ Done |
| SUB | Subtract register from accumulator. | ✅ Done |
| SBB | Subtract register with borrow. | ✅ Done |
| INR | Increment register. | ✅ Done |
| DCR | Decrement register. | ✅ Done |
| CMP | Compare register with accumulator. | ✅ Done |
| CPI | Compare immediate with accumulator. | ✅ Done |
| Instruction | Description | Status |
|---|---|---|
| ANA | AND register with accumulator. | 🔲 Pending |
| ANI | AND immediate with accumulator. | 🔲 Pending |
| ORA | OR register with accumulator. | 🔲 Pending |
| ORI | OR immediate with accumulator. | 🔲 Pending |
| XRA | XOR register with accumulator. | 🔲 Pending |
| XRI | XOR immediate with accumulator. | 🔲 Pending |
| CMA | Complement accumulator. | 🔲 Pending |
| CMC | Complement carry flag. | 🔲 Pending |
| STC | Set carry flag. | 🔲 Pending |
| Instruction | Description | Status |
|---|---|---|
| JMP | Jump unconditionally. | 🔲 Pending |
| JC | Jump if carry is set. | 🔲 Pending |
| JNC | Jump if carry is not set. | 🔲 Pending |
| JZ | Jump if zero. | 🔲 Pending |
| JNZ | Jump if not zero. | 🔲 Pending |
| CALL | Call subroutine. | 🔲 Pending |
| RET | Return from subroutine. | 🔲 Pending |
| RST | Restart (vector interrupt). | 🔲 Pending |
| Instruction | Description | Status |
|---|---|---|
| PUSH | Push register pair onto the stack. | ✅ Done |
| POP | Pop register pair from the stack. | ✅ Done |
| HLT | Halt the program. | 🔲 Pending |
| NOP | No operation. | 🔲 Pending |
| DI | Disable interrupts. | 🔲 Pending |
| EI | Enable interrupts. | 🔲 Pending |
- Completed: 11
- Pending: 31
- Clone the repository.
- Go to the cloned project directory.
- Make a ' build ' name dirrectory.
- Go to the build directory and run the command
cmake ... ( This will build the project make file ). - Add or update instruction implementations.
- Ensure proper flag handling.
- Add the test case for your project.
- Now we have to compile the project.
- Make sure you are in the ' build ' directory and run the command ``` make ``. ( This will execute the make command ).
- Run The Command to Run the test cases. ( Make sure all the test cases are pass ).
- Update this README checklist to reflect your changes.
- Submit a pull request!
Happy coding!