Extended Brookshear Machine emulator and assembler

version (101 KB) by David Young
Emulator and assembler for a simple computer, a teaching aid for computer science courses.


Updated 7 Dec 2011

View License

This is an emulator for the machine described in Computer Science: An Overview, 10th edition, by J. Glenn Brookshear (Pearson Education, 2008). It is extended with some additional instructions and the machine is equipped with a bitmapped display.

The emulator is intended for teaching and learning. It has been used successfully in an introductory computer systems course in the first term (semester) of a computer science programme.

The machine has 256 1-byte memory cells, 16 1-byte registers, and an instruction set with 16 operations. It may be programmed by entering machine code into the emulator, or using a simple assembly language.

The emulator is managed using a GUI, started by executing bmachine, which is in the top level of the directory. The GUI allows memory and register contents to be viewed in a variety of ways (as binary, hex, ASCII, signed integers or floats). Machine code in memory is also displayed as descriptive text or as assembly language instructions. Memory can be updated directly by editing the fields in the emulator, and individual instructions can be executed to see their effect on memory and registers; alternatively, programs may be executed sequentially.

A simple assembler is also provided. Assembly language may be read from a text file and loaded into memory. Two example programs are provided, and HTML documents describing the machine, its emulator and the assembler can be displayed from the GUI.

A 32x32 binary bitmapped display shows the contents of the upper half of memory. This allows programs to create simple graphics, providing excellent possibilities for interesting student exercises.

Cite As

David Young (2022). Extended Brookshear Machine emulator and assembler (https://www.mathworks.com/matlabcentral/fileexchange/22593-extended-brookshear-machine-emulator-and-assembler), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!