Welcome to my CPU Simulator repository! This project encompasses a comprehensive set of assembly language programs designed to simulate various aspects of a CPU based on a specific architecture. Each project is aimed at implementing different functionalities to create a holistic understanding of the instruction cycle and register operations.
Create a machine based on a specified architecture, providing a foundational framework for subsequent projects.
Implement the Fetch routine of the instruction cycle, crucial for fetching instructions and preparing for execution.
Write an assembly program to simulate the ADD operation on two user-entered numbers.
Write an assembly program to simulate the SUBTRACT operation on two user-entered numbers.
Write assembly programs to simulate various logical operations (AND, OR, NOT, XOR, NOR, NAND) on two user-entered numbers.
Implement assembly programs to simulate memory-reference instructions (ADD, LDA, STA, BUN, ISZ).
Write assembly programs to simulate register reference instructions (CLA, CMA, CME, HLT) and determine the contents of AC, E, PC, AR, and IR registers after execution.
Simulate additional register reference instructions (INC, SPA, SNA, SZE) and analyze register contents after execution.
Implement assembly programs to simulate more register reference instructions (CIR, CIL) and analyze register contents post-execution.
Write an assembly program that reads integers, adds them until a negative non-zero number is encountered, and outputs the sum (excluding the last number).
Implement an assembly program to read integers, add them until zero is encountered, and output the sum.
Feel free to explore each project in this repository to gain insights into CPU simulation, instruction execution, and register manipulation. The structured layout and use of headers make it easy for users to navigate and understand the contents of your repository.