CPU Sim - simulator was developed at the Department of Computer Science, Colby College, USA. CPU Sim is an Interactive Java-based CPU Simulator for use in Intro-ductory Computer Organization Classes. It is an interactive computer simulation pack-age in which the user specifies the details of the CPU to be simulated, including the register set, memory, the microinstruction set, machine instruction set, and assembly language instructions. CPU Sim is an application that allows users to design simple computer CPUs at the microcode level and to run machine-language or assembly-language programs on these CPUs through simulation. It can be used to simulate a variety of architectures, including accumulator-based architecture, a RISC-like, or stack-based (such as the JVM) architectures. This simulator was developed using Java programming language. It interprets the created model and its assembly code. This application runs on Windows, Linux, and MacOS. The CPU Sim application is a fully integrated development environment that includes the following features: Tools for designing a CPU at the register-transfer level, a text editor for writing assembly language programs. An assembler for converting assembly programs into machine code for the users CPU. During simulation it is possible to use the built-in debugger. This debugger allows users to move forward and backward through the execution of such programs, to inspect and optionally to change the machine state after each step [20, 37]. This program can be used by students. It is a useful tool for instructors who want their students to get hands-on exposure to a variety of architectures and to get a chance to design, implement, and write programs in a machine language and as-sembly language of their own. It was used in Introductory Computer Organization Classes at Colby College.