MMIX Logo

Rechnerstrukturen - MMIX

Als Beispiel eines von Neumann (RISC) Rechners soll in der Vorlesung der MMIX Modellprozessor von Donald Knuth und der zugehörige Assembler dienen. Zu diesem Prozessor existieren Beispielumgebungen für verschiedene Systeme, so dass auch ein praktischer Umgang damit möglich ist. Diese Seite soll eine kurze Einführung in den Umgang mit diesen Umgebungen geben. Vor allem aber wird auf weitere Informationen im WWW verwiesen.

Knuth schreibt als kurze Übersicht zu MMIX:
MMIX is a machine that operates primarily on 64-bit words. It has 256 general-purpose 64-bit registers that each can hold either fixed-point or floating-point numbers. Most instructions have the 4-byte form `OP X Y Z', where each of OP, X, Y, and Z is a single 8-bit byte. For example, if OP is the code for ADD the meaning is ``X=Y+Z''; i.e., ``Set register X to the contents of register Y plus the contents of register Z.'' The 256 possible OP codes fall into a dozen or so easily remembered categories. The designers of important real-world processor chips (e.g., MIPS and ALPHA) have helped me with the design of MMIX.


Links


Programm zum 2. Aufgabenblatt

Programm der Fragestunde vom 24.06.03

Weitere Programme (zu den Übungen) auf der Rechnerstrukturen Vorlesungsseite 2003.


Installation / Erste Schritte

In allen Versionen stehen der Assembler (mmixal) und der Simulator (mmix) zur Verfügung. Mit mmixal wird der Quellcode (das Assembler-Programm, Endung .mms, MMIX-Source) assembliert. Die daraus entstehende Objektdatei (Endung .mmo, MMIX-Object) kann dann mit mmix ausgeführt werden. Die ausführbaren Dateien brauchen keine besonderen Installationsschritte. Man erstellt einfach einen Ordner und speichert die Dateien in diesem Ordner. In diesem Ordner kann man auch einfach Programme erstellen, assemblieren und laufen lassen.

Erstellen eines MMIX-Programms

  1. Quellcode erstellen und (üblicherweise) mit der Endung .mms abspeichern.
  2. Quellcodedatei name.mms wie folgt assemblieren: mmixal name.mms -> name.mmo wird erzeugt
  3. Die Objektdatei wird wie folgt ausgeführt: mmix name.mmo oder mmix name

Assembler und Simulator haben verschiedene Optionen (mmixal bzw. mmix -h eingeben). Die am Anfang interessantesten Optionen für mmix sind die Optionen -v (verbose, geschwätzig, gibt verschiedene Informationen über den Zustand des Prozessors aus) und -i (interaktiv, nach jedem Befehl wird der Prozessor angehalten und man kann sich Speicher- und Registerinhalte anzeigen lassen und verändern).

Der genaue Aufbau des MMIX-Prozessors und seines Befehlssatzes sowie seine Programmierung wird in der Vorlesung behandelt.


Binaries

Binaries des Assembler und Simulators (Achtung: nicht die aktuellsten Versionen, sollten aber funktionieren) für:
Daniel Keysers
Last modified: Tue Jul 1 17:52:03 CEST 2003