![]() |
Re: Maschinensprache
Zitat:
In was man programmiert hab ich ja geschrieben : C. Setup war ein Microcontroller, die Ausgabe lief auf 'nem LC-Display, was ueber I^2C oder SPI angeschlossen war (sorry, bin mir nicht mehr ganz sicher, welches Interface). Das ging komplett ueber den gcc (spezielle Version als Cross-Compiler) ohne irgendwelchen Assembler-Code. Mag sein, dass es Haarspalterei ist, aber es ist definitiv moeglich ein OS ohne Assembler zu entwickeln. Der sinngemaesse Ausspuch "auch C wird in Maschinensprache uebersetzt und deshalb kann man damit ein OS schreiben" hat schon seine Richtigkeit. Ausschlaggebend dabei ist die Effizienz. Ich hab bei dem besagten Projekt auch teilweise noch Assembler benutzt. Allerdings nicht, weil es mit C nicht funktioniert haette, sondern weil der Code nicht mehr in den Speicher des Microcontrollers gepasst haette. |
Re: Maschinensprache
Zitat:
Es gibt verschiedene Interupts, die verschiedene Funktionen beinhalten: z.B.: Int 10 - Hier sind die "video" (Grafikkarte) Funktionen (vom BIOS bereitgestellt) Int 13 - Hier sind die "disk I/O services" (vom BIOS bereitgestellt) Int 21 - Hier sind die "function request services" (von DOS bereitgestellt) Im Beispielprogramm ist es ja genauso. [equote="In ![]()
Ich habe die Wichtige Stelle oben im Zitat des Tutorials mal rot markiert Hier noch mal das ganze Listing mit Kommentaren zu den Funktionsaufrufen:
Code:
125A:0100 EB0C JMP 010E
125A:0102 68656C6C6F20 DB "hello " 125A:0108 776F726C6424 DB "world$" 125A:010E BA0201 MOV DX,0102 ; Parameter (Adresse des Strings) 125A:0111 B409 MOV AH,09 ; Dos Funktion No 09 aufrufen (String Ausgabe) 125A:0113 CD21 INT 21 ; In Interupt wird dann obige Funktion ausgeführt 125A:0115 B8014C MOV AX,4C01 ; Dos Funktion 4C mit Parameter 01 wird aufgerufen (Programmende) 125A:0118 CD21 INT 21 ; In Interupt wird dann obige Funktion ausgeführt Zitat:
Zitat:
Es gibt Listen mit allen Funktionen der Interupts: Meine damals verwendete Liste habe ich auf die schnelle nicht mehr gefunden. Aber hier ist eine andere Liste (ist eigentlich eine Hilfedatei für HelpPC, kann aber auch so gelesen werden): ![]() Zitat:
Das Thema wurde am 13.10.2004 erzeugt. am 14.10.2004 habe ich das mini Tutorial geschrieben, dass auch in Tutorials gepostet ist. am 15.10.2004 war die Diskussion beendet am 20.10.2005 also gestern also 1 Jahr und 5 Tage später stellt Dussel eine Frage und sofort (ich meine im Millisekundenbereich ;-) ) ist diese Disskusion wieder am leben. Das finde ich immer wieder lustig :mrgreen: |
Re: Maschinensprache
Zitat:
mfg, mh166 |
Re: Maschinensprache
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Maschinensprache
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
![]() Dein Link nach arl.wustl.edu funktioniert ürigens bei mir nicht, traceroute bekommt einen Timeout beim 10. Knoten. Zitat:
Edit: Noch früh am Morgen... (was bedeutet eigentlich "gegeneben"?) |
Re: Maschinensprache
Zitat:
mfg, mh166 |
Re: Maschinensprache
Zitat:
|
Re: Maschinensprache
Zitat:
In meinem Letztem Beitrag ist die Liste (als >6MByte großes AsciiTextfile) zu finden. Die hatte vorallem auch die undokumentierten Funktionen aufgelistet. (z.B. die von auf dem System aktiven Viren ;-) ) |
Re: Maschinensprache
Zitat:
TPCEmulator -> um den Zielrechner zu simulieren (gibt's mit Boch's als OpenSource) TBiosChip -> Damit der Rechner weiß, was er nach dem Einschalten als Erstes tun muß TBootDisk -> mit eingelagertem HexEditor für die Bootsequenz (Zumm Booten des Systems) TGraphicCard -> Ein Grafikadapter zum Anzeigen der Systemausgaben TMonitor -> Erst hier wären die Ausgaben wirklich zu sehen TCDROM -> CD-Laufwerk nur lesen TCDRW -> CD-Laufwerk mit Brenner (vielleicht reicht hier im Design auch ne Eigenschaft, die die Art des CD-Laufwerkes beschreibt, als nur Lesen, Lesen/schreiben) TDVD -> DVD Laufwerk Das Formular müßte zuerst den PCEmulator aufnehmen, dann folgen die anderen Komponenten, die gemäß der Hardware-Konfiguration über passende Eigenschaften zusammengeschlossen werden. Danach folgt der Software Teil. Dafür müssen geeigete Speicherplätze in den KOmponenten vorhanden sein. In einer PCEmulator Komponente könnte man die Befehllssätze verschiedene CPU's definieren und als Eigenschaft im OI dann einen auswählen. Wie beschreibt man so einen Befehlssatz? Entweder mit einer Tabelle mit allen möglichen Befehlskombinationen. Oder mit speziellen Beschreibungssprachen, falls es sowas gibt. Intel und AMD müssen ja den Befehlssatz für Ihre CPU's auch irgendwo beschreiben. Und VMWare auch. Zum Grafikadapter: Ich kenne VMWare. Dort wünschte ich mir eine Hardwarenähere Simulation meiner physikalischen GK Praktisch ein Wrappen auf meine echte. Da aber der Grafikadapter in VMWare sehr langsam ist, gehe ich davon aus, das alle Funktionen der GK softwaremäßig perfekt nachgebildet sind, statt dort im Gegensatz zu den übrigen PC Komponenten auf die physikalische GK zurückzugreifen. Sinnvoll wäre das Ganze schon. Aber wer entwickelt die Komponenten? Dürfte einigen Aufwand bedeuten! schöni |
Re: Maschinensprache
Zitat:
![]() Schöni, ich weiß nicht, ob du die Ironie in meinem Beitrag nicht erkannt hast, oder ob ich jetzt deine nicht erkenne. :gruebel: Komponenten zur Emulation eines Computer sind nicht notwendig, als vollständigen x86-Emulator hat man ja Bochs, wenn das Betriebssystem erstmal funktioniert. Neben TOperatingSystem bräuchte man nur noch TMarketDominance (aus Microsoft-internen Kreisen wurde mit bekannt, daß Microsoft bereits an einer Ableitung dieser Klasse arbeitet, TWorldDominance). Zitat:
Zitat:
Zitat:
![]() Disclaimer: Dieser Beitrag kann nicht unwesentliche Mengen nicht ernstgemeinten Textes enthalten. Der Autodieses Beitrags bittet um Verständnis und schließt sämtliche Rechtsansprüche auf durch Ironie oder Srakasmus entstandene Schäden aus. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz