Books in Print

 [image of the Head of a GNU] [ English ]

GNU Software Manuals Series

GNU MDK: GNU MIX Development Kit

GNU MDK book cover image
Author: José Antonio Ortega Ruiz
ISBN: 1-882114-29-9
Perfect bound, trade paper
116 Pages
Publication Date: September 2003
Revised First Edition

Order Now!

GNU Press Home Page
Books In Print
Software on CD
GNU Gear Page
Wall Art
Other Fan Gear
Order Form
For Authors
For Resellers
For Teachers
Contact Us
FSF Home Page
GNU Project Home

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 code
  • 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.

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.

Please send comments on these web pages to, send other questions to

Copyright © 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: $Date: 2006/05/01 10:04:13 $ $Author: ramprasadb $