MMIX Win32 Executables

Documentation, Sources, Binaries, Links, Examples, Contributions

Table of Content


MMIX Win32 Executables

Here you find Win32 executables that were compiled with either the GNU C-Compiler under mingw or with the MS Visual C++ 2005. If you want to do the compilation yourself, you find the necessary solution and project files below. You still need, however, the cweb files from the source distribution.


The following programs are the basis for working with MMIX. The programs are produced by a process called "Literate Programming", tightly integrating the production of programs and documentation. To produce the executables below, you need the cweb files mentioned above. From these the program ctangle (see below) will produce .c and .h files that can be compiled using the GNU C-Compiler (see below). The cweb distribution contains a Makefile describing the whole build process. You do not need to go through the whole process, however. Just download the following files. The documentation for these programs, is produced from the same cweb files using the cweave program and tex. You can download the documentation in pdf format from the documentation page.

MMIXVD the MMIX Visual Debugger

If you want an integrated development environment that integrates the functionality of mmix and mmixal, try MMIXVD the Visual Debugger.

MMIXIDE the MMIX Integrated Development Environment

This is the companion of MMIXVD for the Virtual Motherboard. The setup file setup_vmb_2_1.exe for the VMB project will install it. The sources, and more on the vmb project, can be found on the VMB home page.

The new 2.2 version is currently only available with a German Help File for the MMIXIDE. This is the setup file: setup_vmb_2_2_de.exe. The english version will appear soon.

Literate Programming

Literate programming means writing programs, as you would write a novel or an essay. You explain to the reader what your program is all about and how it is working. You put this description in a "web" file and if you do this on a sufficient level of detail, the program ctangle, itself written as a literate program (see The CWEB System of Structured Documentation ), can tangle the web and extract a program from it. The program cweave on the other hand will weave the web into a nice book. The program ctie, is an advanced utility. You find more about is on the documentation page.
  • ctangle.exe produces .c files from .w files
  • cweave.exe produces .tex files form .w files for documentation
  • ctie.exe alternative to ctangle for multiple change files

The GNU binutils, gcc, and gdb

An alternative to the basic MMIX assembler mmixal (see above) is the use of the GNU toolchain. The GNU toolchain is a complex set of programs and libraries. It contains the tools you are used to expect in a UNIX environment.
The so called binutils contain an assembler, a loader, and a library builder as well as other utilities to inspect or copy the produced object files. The common format for these object files is the ELF format. The "native" mmo format, as produced by mmixal, is supported as well. While MMIX was designed with programming in MMIX assembler in mind, for larger programs a high level language is a better choice.
The next program is therefore the GNU C-Compiler gcc (thanks to Hans-Peter Nilson). It allows programming the MMIX in C or C++, including also the C-library, with such mundane functions as "printf". Having a C compiler, you can of course also write literate programs for the MMIX (see for example "Running MMIX on MMIX").
The necessary companion to gcc is gdb, the GNU debugger, which comes as a command line utility "gdb" and a sophisticated GUI appropriately named "insight". The GNU debugger is currently in "alpha" state. You can set breakpoints directly in the source files, step through your programs, and inspect the registers. While in C-Mode, you can also inspect variables and the stack (with some restrictions).
The binary files below are compiled using minGW. To run the binaries, a minGW is not required. To install the binaries unzip the file so that the top folder shows up for instance as "C:\Program Files (x86)\mmix" on your computer. Now you need to add the path to "C:\Program Files (x86)\mmix\bin", containing the executables, to your PATH variable (see Win32 Path HOWTO).

MS VisualC++ 2005 Solution and Project Files

Under the Windows operating system, one of the popular compilers/development environments is Visual C++. It does not work with Makefiles but with Solution- and Projectfiles.

You can download the change files, project files, and solution files from the source code repository under

Other Binaries


On some computers the binaries will not work; starting them will produce an error message complaining about problems with side-by-side assemblies. In this case you should download the file msvcr80.dll and place it in the same directory where the other binaries reside, usually C:\\Program Files\vmb or C:\\Program Files (x86)\vmb or C:\\Programme\vmb or C:\\Programme (x86)\vmb. If this does not fix the error try to download the MS Visual Studio 8 C/C++ redistributables from this Microsoft page and install them.

Please help to keep this site up to date! If you want to point out important material or projects that are not listed here, if you find errors or want to suggest improvements, please send email to email