GNU MDK, Revised First Edition.
The MIX is a mythical computer designed by Donald Knuth in his monumental work "The Art Of Computer Programming". MIXAL (the Mix Assembly Language) is its assembler. You can learn about MIX and MIXAL as an introduction to computer architecture or assembly programming, as a companion to Knuth's book, or just for fun!
The MIX's architecture is a simplified version of real CISC CPUs. It features registers, memory cells, an overflow toggle, comparison flags, input-output devices, and a set of binary instructions executable by its virtual CPU. It is powerful and complete enough to provide a virtual development platform for writing quite complex programs, and useful for learning new programming techniques.
The following tools come with MDK:
- mixasm A MIXAL assembler to run and debug MIXAL source codev
- mixvm A MIX virtual machine emulation using a command line interface
- gmixvm A GTK+ GUI graphical interface for the MIX
- mixguile A Guile shell with an embedded assembler and built-in Scheme commands
- mixvm.el A Lisp program to run mixvm inside of an Emacs GUD buffer, allowing concurrent editing and debugging of MIXAL programs
These tools allow you to:
- set breakpoints, run programs step by step, trace executed instructions (great for debugging and learning)
- set conditional breakpoints (register change, memory change, and more)
- collect execution timing statistics
- inspect and modify the MIX registers, flags and memory contents at any step
This tutorial provides a thorough description of the MDK utilities. The latest version of the GNU MDK is easily downloadable from the Internet free of charge [instructions inside]. Executables exist for a wide range of free software platforms, as well as MS Windows and Macintosh. Download an electronic copy of this book.
About the Author:
Jose' Antonio Ortega Ruiz received his PhD from the University of Barcelona in Theoretical Physics in 1997. His interest is programming languages and methodologies, both at a practical and theoretical level. He is a fan of Donald Knuth and brought the MIX system to life following Knuth's original design. Jose' currently teaches computer science classes at the Autonomous University of Barcelona, Spain.