Top Qs
Timeline
Chat
Perspective

CPU Sim

Software development environment From Wikipedia, the free encyclopedia

Remove ads

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.

Quick Facts Original author(s), Stable release ...
Remove ads

CPU Sim has been programmed using the Java Swing package. This means that it is platform independent (runs on every platform that has a Java virtual machine installed).

Remove ads

Wombat 1 Sample CPU

Summarize
Perspective

A sample computer system, the Wombat 1, is provided with CPU Sim. It has the following registers:

The assembly language of the Wombat 1 computer consists of 12 instructions. Each instruction is stored on 16 bits; the first 4 are the opcode and the other 12 are the address field.

More information Mnemonic, Operation code ...
Remove ads

Features

CPU Sim has the following features:

  • allows the creation of a CPU (a virtual one), 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

Summarize
Perspective

This program reads in integers until a negative integer is read. It then outputs the sum of all the positive integers.

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.

See also

References

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads