CPU Sim
CPU Sim is a software development environment for the simulation of simple computers. It was developed by Dale Skrien to help students understand computer architectures. With this application the user is able to simulate new or existing simple CPUs. Users can create new virtual CPUs with custom machine language instructions, which are implemented by a sequence of micro instructions. CPU Sim allows the user to edit and run assembly language programs for the CPU being simulated.
CPU Sim has been programmed using the Java Swing package. This means that it is platform independent.
Wombat 1 Sample CPU
A sample computer system, the Wombat 1, is provided with CPU Sim. It has the following registers:- pc ;
- acc ;
- ir ;
- mar ;
- mdr ;
- status.
Features
CPU Sim has the following features:- allows the creation of a CPU, including the registers, RAM, microinstructions, and machine instructions;
- allows the creation, editing, and execution of assembly language programs for the simulated CPU;
- allows stepping forward and backward through the execution of assembly language programs.
Example program for the Wombat 1 CPU
Start: read // read n -> acc
jmpn Done // jump to Done if acc < 0.
add sum // add sum to the acc
store sum // store the new sum
jump Start // go back & read in next number
Done: load sum // load the final sum
write // write the final sum
stop // stop
sum:.data 2 0 // 2-byte location where sum is stored
The following modification of the program is also used sometimes:
Start: read // read n -> acc
jmpz Done // jump to Done if nacc is 0.
add sum // add sum to the acc
store sum // store the new sum
jump Start // go back & read in next number
Done: load sum // load the final sum
write // write the final sum
stop // stop
sum:.data 2 0 // 2-byte location where sum is stored
This one can use negative input to subtract, or 0 to break the loop.