| Autor |
Beitrag |
catweasel
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Di 16.03.04 20:54
Hi,
vor einiger Zeit hatte ich ja mal diesen Thread hier www.delphi-forum.de/viewtopic.php?t=22659 gestartet...
Ich hab mich jetzt mal darangemacht mir eine kleine CPU selber zu basteln
Man hat also eine Konstruktion wie bei einer echten CPU und steuert deren Zustand mit Hilfe von
Assembleranweisungen....
Manche nennen sowas auch Turingmaschine, oder von-Neumann Rechner.. Ich weiss zwar nicht was der Unterschied zwischen beiden ist und daher auch nicht, ob ich eher eine Turingmachine oder einen von-Neumann Rechner gebastelt habe...
Das Programm ist dabei dem von Popov nicht unähnlich. (Hatte er auch mal hier veröffentlicht und ist im
anderen Thread verlinkt).
Danke für die Inspiration
DOWNLOADLINK BITTE *RECHTE* MAUSTASTE ZUM DOWNLOADEN BENUTZEN
de.geocities.com/catweedzel/dat/MY_CPU.zip
So, aber nun mal ein paar Worte zum Programm:
Obwohl das Form, notgedrungen, etwas grösser ist als dem Einen oder Anderen vielleicht lieb, habe ich
versucht ein paar der früheren Fehler zu vermeiden. DAs Formular ist nun nach rechts und unten
"klappbar". Sollte jemand trotzdem noch Probleme mit der Formulargrösse haben, bitte mailen. Ich lege
auch mal ein paar ScreenShots bei, wie es auf meinem Monitor aussieht...
Ich habe auch versucht die Hile zu dem Programm so ausführlich wie möglich zu gestalten. Sollte etwas
wesentliches fehlen, bitte Feedback!
Es werden, unter Anderem, folgende Features geboten:
CPU
------
- Es gibt 8 Register mit 32 bit Breite. (Im Momoent jedoch ausschliesslich nur als 32bit ansprechbar).
- Zero-Flag für bedingte Sprünge
- 12 verschiedene OpCodes (Assemblerbefehle)
- Interrupts für Bildschirm Ein/Ausgabe und Tastatureingabe
- Sprungreferenzierung durch selbstdefinierte Labels
- Bedingtes "Compilieren" des Assemblercodes (z.b. Sprunglabels werden in fixe Adressen aufgelöst)
- Es steht ein Stackspeicher zur Verfügung
- Es steht ein Hauptspeicher zur Verfügung
HARDWARE
-------------
- Monitor. Kann schon durch Interrupts angesprochen werden.
Schaut euch einfach mal an. Bei Fragen einfach melden
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
Zuletzt bearbeitet von catweasel am Fr 19.03.04 11:05, insgesamt 1-mal bearbeitet
|
|
Moritz M.
      
Beiträge: 1672
|
Verfasst: Mi 17.03.04 15:18
Fehler 404: Seite kann nicht gefunden werden
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 17.03.04 15:24
Ähm, ist das jetzt ein Gemeinschafts- oder ein Freeware-Projekt? Je nachdem würde ich die beiden Threads dann in der einen oder anderen Sparte zusammenführen. Ein Thread pro Projekt sollte nämlich reichen. 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: Mi 17.03.04 15:56
| Zitat: | | Fehler 404: Seite kann nicht gefunden werden |
Probier's mal mit der Rechten Maustaste und "Ziel speichern unter..." (o.ä)
|
|
catweasel 
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Mi 17.03.04 19:56
| Zitat: | | Ähm, ist das jetzt ein Gemeinschafts- oder ein Freeware-Projekt? Je nachdem würde ich die beiden Threads dann in der einen oder anderen Sparte zusammenführen. Ein Thread pro Projekt sollte nämlich reichen. |
Also da ansonsten, bisher, niemand Interesse an der Mitentwicklung hat, habe ich es als FreeWare Projekt veröffentlicht...
Der andere Thread ist also im Prinzip "geschlossen"
Ich wollte den Thread im anderen Bereich aber stehen lassen, da dort viele Links enthalten sind und ich mich auch in diesem Thread auf den Anderen beziehe.
Catweasel
ps:
Hab schon nen Schock bekommen, weil ich dachte die haben mir schon wieder den Webspace gecancelt..
Das speichern geht tatsächlich nur mit der rechten Maustaste... 
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
Zuletzt bearbeitet von catweasel am Mi 17.03.04 22:03, insgesamt 1-mal bearbeitet
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 17.03.04 19:59
Ich habe den Thread dann mal "richtig" geschlossen, aber stehen gelassen. 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
catweasel 
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Do 18.03.04 22:32
Hmmm keiner der das mal tesen mag...
Catweasel
ps: Peter meinte mit dem Schliessen den anderen Thread 
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
Lunzen
      
Beiträge: 29
|
Verfasst: Fr 19.03.04 10:57
| Onz hat folgendes geschrieben: | | Fehler 404: Seite kann nicht gefunden werden |
funzt bei mir auch nicht ... 
|
|
Jack Falworth
      
Beiträge: 222
Win XP Pro, Slackware 10.0
D5 Enterprise, C++, ABAP
|
Verfasst: Fr 19.03.04 11:05
Würde das Prog gerne mal anschauen, da ich gerade selbst an einer Turing Maschine schreibe,
aber leider kommt bei mir auch nur die GeoCities Seite mit der Bemerkung -> Nicht verfügbar!
MfG
Jack Falworth
Edit:
Unterschied Neumann - Turing:
Der Neumann Rechner besteht aus fünf Funktionseinheiten, dem Steuerwerk, dem Rechenwerk, dem Speicher, dem Eingabewerk und dem Ausgabewerk. Man hat also einen Speicher in dem die Zwischen-, Endergebnisse gespeichert werden. Das ist bei der Turing Maschine anders. Der Aufbau ist um einiges komplexer als der bei einer Turing Maschine.
Diese besteht aus einem unendlichen Band von Speicherzellen, in die geschrieben werden können und von denen gelesen werden können. Eine Steuerungsunit lenkt einen beweglichen Lese-Schreib Kopf, der über das Band fährt. Dieser ließt Werte aus, leitet die an die Steuerungsunit weiter, die gibt einen Rückgabewert zurück, der wieder auf das Band geschrieben wird. So wird das Eingabewort abgearbeitet. Das Band wird also sowohl für Eingabe als auch für Ausgabe benutzt. Das ist der Hauptunterschied.
Das ganze ist jetzt sehr grob vereinfacht. Es gibt natürlich auch noch andere Aspekte zu nennen.
Edit2:
Was mir noch gerade aufgefallen ist.
Hast du wirklich einen Compiler integriert? Ich sehs immer wieder, dass Leute davon sprechen, dass sie einen Mordscompiler integriert haben, dabei ist das meistens noch nicht mal ein Interpreter.
Ein Compiler führt eine lexikalische, syntaktische und semantische Analyse durch und erzeugt (wenn kein Fehler vorliegt) irgendeinen Maschinencode.
Das ist jetzt nichts gegen dich, sondern allgemein sollte man mit so Begriffen nicht zu freigiebig sein.
Wenn ich dir jetzt Unrecht getan habe, dann entschuldige ich mich natürlich dafür.
_________________ Andere zu kritisieren ist mitunter eine Möglichkeit, sich selbst ins bessere Licht zu setzen.
Zuletzt bearbeitet von Jack Falworth am Fr 19.03.04 11:23, insgesamt 3-mal bearbeitet
|
|
catweasel 
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Fr 19.03.04 11:08
Das Problem hatte schonmal jemand hier im Thread...
Bitte die rechte mAustaste zum Downloaden benutzen...
Catweasel
ps: Bald kommt auch ne neue Version Online mit emulierter Festplatte und einem primitiven Kompiler für eine noch primitivere Hochsprache die auf diesem MyCpu Assembler aufsetzen wird.
Aber testet bitte erstmal diese Version
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
Jack Falworth
      
Beiträge: 222
Win XP Pro, Slackware 10.0
D5 Enterprise, C++, ABAP
|
Verfasst: Fr 19.03.04 11:26
Mit der rechten Maustaste funktioniert es bei mir auch nicht. Egal was ich auswähle.
Er speichert höchstens die htm seite, aber ist nicht unbedingt der sinn der sache.
MfG
Jack Falworth
_________________ Andere zu kritisieren ist mitunter eine Möglichkeit, sich selbst ins bessere Licht zu setzen.
|
|
catweasel 
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Fr 19.03.04 11:51
| Zitat: | Mit der rechten Maustaste funktioniert es bei mir auch nicht. Egal was ich auswähle.
Er speichert höchstens die htm seite, aber ist nicht unbedingt der sinn der sache. |
Hmm  Habs selber gerade nochmal probiert, geht bei mir (IE 6; WINXP).
Oder PN mir mal deine email adresse, ich schicks dann per email....
Catweasel..
ps : Zu dem Compiler sag ich gleich mal was, muss aber erstmal was essen 
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
Zuletzt bearbeitet von catweasel am Fr 19.03.04 11:52, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 19.03.04 11:51
IE, rechte Maustaste, "Ziel speichern unter...". Klappt bei mir einwandfrei.
Wenn ein paar Beispielprogramme dabei wären, könnte ich es auch testen. 
|
|
catweasel 
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Fr 19.03.04 11:54
| Zitat: | | Wenn ein paar Beispielprogramme dabei wären, könnte ich es auch testen. |
Ja, Sorry, ich hab die Beispielprogramme verloren, als ich deren Dateiformat reformiert habe
Bei der nächsten Release (heute abend schätze ich) werden wieder welche dabei sein...
Abeer schau dir ruhig mal die OpCodes an. Vielleicht schaffst du ja die Addition selbst
Catweasel..
ne Weile später ...
Hab gerade eins zusammengehackt...:
Müsste in der zur Verfügung stehenden Version so schon funktionieren...
Das Programm gibt ein Zeichen auf dem Bildschirm aus.
MyCPU Quellcode:
Quelltext 1: 2: 3: 4: 5: 6:
| MOV EAX 103 // Der Wert 103 wird in EAX geschrieben STOR 5 EAX // Der Wert von EAX wird in Speicheradresse 5 geschrieben MOV SI 5 // Das SI Register zeigt nun auf Spiecherzelle 5 mit unserem abgelegten Wert MOV IR 2 // Der Bildschirminterrupt erwartet für die Zeichenausgabe den Parameter IR=2 INT 0 // Interrzpt 0 ist der Bildschirminterrupt. HLT // Programmende (OpCode optional). |
Der Interrupt 0 führt also dazu, falls IR=2 ist, (IR bedeutet Interruptregister  ), das Der Wert der Speicherstelle auf die SI zeigt als Zeichen ausgegeben wird...
Catweasel
ps: Muss nochmal kurz weg, aber ich erkläre dann anhand dieses Quellcodes wie mein "Compiler" arbeiten soll...
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
Jack Falworth
      
Beiträge: 222
Win XP Pro, Slackware 10.0
D5 Enterprise, C++, ABAP
|
Verfasst: Fr 19.03.04 15:54
also ich hab den neuesten Opera und da gehts nicht.
Hab dir mal ne PN mit meiner E-Mail Addy geschickt, dann kannste mir das Prog schicken wenn du Zeit und Lust hast.
MfG
Jack Falworth
_________________ Andere zu kritisieren ist mitunter eine Möglichkeit, sich selbst ins bessere Licht zu setzen.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 19.03.04 16:58
Mozilla, rechte Maustaste auf Link, "Save linktarget as...". Sag mal könnt ihr alle eure Browser nicht bedienen? 
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 19.03.04 17:02
Auch in der Version 7.32 von Opera kann man mit "Save Target as ..." diese Datei speichern ... 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
catweasel 
      
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: Fr 19.03.04 18:15
S :
Die neue Version ist da...
Downloadlink ist derselbe und funktioniert sogar (mit rechter Maustaste  )
Catweasel
_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
|
|
Jack Falworth
      
Beiträge: 222
Win XP Pro, Slackware 10.0
D5 Enterprise, C++, ABAP
|
Verfasst: Fr 19.03.04 21:18
@Peter Lustig: Ja jetzt geht es bei mir auch. Aber heute mittag ging da noch gar nichts.
MfG
Jack Falworth
_________________ Andere zu kritisieren ist mitunter eine Möglichkeit, sich selbst ins bessere Licht zu setzen.
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Fr 19.03.04 22:16
Ist aber ein reines Server-Problem. Der Geocities-Server macht sich anscheinend die Mühe den Referrer auszulesen. Bei mir geht's auch perfekt mit Linksklick, bis ich meinen Webwasher deaktiviere, der sonst den Referrer filtert.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|