Hier:
http://www.chip.de/suche/suche.html?q=microsoft+c&cat=0102&submit=suchen&tpl=only&np=0
Edit:
Ich habe vor längerer Zeit mal einen Emulator für einen selbsterfundenen sehr minimalistischen Prozessor
geschrieben. Vielleicht hilft dir das ja zu erkennen, dass du noch viele Jahre lernen musst, bis du dein
Vorhaben umsetzen kannst.
Ein Assembler, mit dem Emulator als Target ist dabei, aber als ich grad nochmal drüber geguckt habe, musste
ich feststellen, dass er sehr hässlich ist, auf die schnelle zusammengeschustert etcpp. Außerdem leckt er Speicher.
Am besten nicht angucken. Oder falls doch, mich bitte nicht auslachen.
Whatever, er tut seine Arbeit.
http://www.incertum.net/~sirdzstic/aisc-0.1.1.tar.gz
Kompilieren mit:
Beispielkram ausprobieren z.B. so:
Code:
asdf@localh0rst ~/src/aisc/aisc-0.1.1 $ bin/aisc bin/add-s.aisc 4 5
12 JMP 18 4 5 0 0 0 0 0 0
18 ISZ 1- 4 5 0 0 0 0 0 0
20 JMP 14 4 5 0 0 0 0 0 0
14 INC 0 5 5 0 0 0 0 0 0
16 DEC 1 5 4 0 0 0 0 0 0
18 ISZ 1- 5 4 0 0 0 0 0 0
20 JMP 14 5 4 0 0 0 0 0 0
14 INC 0 6 4 0 0 0 0 0 0
16 DEC 1 6 3 0 0 0 0 0 0
18 ISZ 1- 6 3 0 0 0 0 0 0
20 JMP 14 6 3 0 0 0 0 0 0
14 INC 0 7 3 0 0 0 0 0 0
16 DEC 1 7 2 0 0 0 0 0 0
18 ISZ 1- 7 2 0 0 0 0 0 0
20 JMP 14 7 2 0 0 0 0 0 0
14 INC 0 8 2 0 0 0 0 0 0
16 DEC 1 8 1 0 0 0 0 0 0
18 ISZ 1- 8 1 0 0 0 0 0 0
20 JMP 14 8 1 0 0 0 0 0 0
14 INC 0 9 1 0 0 0 0 0 0
16 DEC 1 9 0 0 0 0 0 0 0
18 ISZ 1+ 9 0 0 0 0 0 0 0
22 JMP 15 9 0 0 0 0 0 0 0
15 STP 9 0 0 0 0 0 0 0
Zu lesen ist das ganze so:
Spalte 1: Aktuelle Adresse
Spalte 2: Opcode
Spalte 3: Argument (bei ISZ gibt + ein positives Ergebnis an, - ein negatives)
Spalten 4-11: Register 0-7
Aisc initialisiert die register 0 und 1 mit den Werten 4 und 5 (laut kommandozeile)
und führt dann das Binary add-s.aisc aus, das die Werte addiert und in Register 0
schreibt. Danach stopt die Ausführung.