Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Von CD ein Programm booten

Frage Entwicklung

Mitglied: 26126

26126 (Level 1)

25.02.2007, aktualisiert 19:27 Uhr, 3605 Aufrufe, 3 Kommentare

Mit Assembler starten und mit z.B. QBasic enden?

Hallo Administratoren!

Es ist möglich mit Assembler ein OS von einer Diskette zu starten. Nungut, es ist bestimmt auch mehr möglich, aber soweit bin ich gerade. Und da ist mir eingefallen, dass ich gar kein C kann, mit dem ich dann überhaupt meinen Kernel starten könnte. Ist es also möglich eine CD (oder am Anfang erst eine Diskette) zu schreiben, die als Bootsektor angesehen wird, von der man also booten kann, die aber dann ein NICHT-Assembler Programm startet, sondern ein QBasic Programm oder ähnliches?

Theoretisch: man steckt die Diskette rein, dann kann man von der Diskette mit dem Assemblerbootloader starten und dann wird das andere Programm gestartet. möglich oder nicht?

Mfg, Datis
Mitglied: miniversum
25.02.2007 um 17:39 Uhr
Den Anfang mußt du in assembler machen. Dafür gibts ja genügend Codebeispiele und Erklärungen wie zu kompilieren im Internet.

Amembler brauchst du halt das du an der Startadresse die der Bootloader des PCs will wirklich beginnst (geht ja mit ORG). Dann noch den Stack festlegen in assembler udn danach kanst du auf ne Funktion in C verweisen als FAR Prozedur halt. Ob das equivalent mit QBasic geht weiß ich allerdings nicht.

miniversum
Bitte warten ..
Mitglied: 26126
25.02.2007 um 17:57 Uhr
Danke für deine schnlle Antwort.

Dass du ein Profi bist, ist mir gleich klar geworden, kannst du es aber auch einem Noob wie mir ein bisschen "noobiger" erklären?

"ORG, FAR, equivalent"
Bitte warten ..
Mitglied: miniversum
25.02.2007 um 19:27 Uhr
Naja Profi...
Also wenn du mal im Internet nach sourcecodes suchst wirst du immer asemblerdateien Finden die am anfang ein ORG und eine Zahl dahinter stehen haben. Die Zahl ist der anfangspunkt des Programmes im Speicher. Dein PC Will dabei immer an einer Bestimmten Adresse des Speichers Booten. Diese Startadresse muß dorthinter dem ORG stehen. Schau einfach mal da ist das schon fertig wenn du nach Sourcecodes suchst.
Als weiteres gibt es vershciedene arten von Prozeduren. Near und Far. Das hat was dmait zu tun ob die Prozedur/Die Funktion die aufgerufen wird in der nähe oder weiter weg ist (innerhalb der Datei oder auserhalb, naja so ähnlich. Jedenfalls wird in Assenbler normalerweise eben diese Startadresse aufgegriffen, der Stack angelegt und dann auf eine Funktion in einer C Datei weitergeleitet. Bei den C dateien ist nicht sichergestellt wo genau diese im Speicher leigen. Durch die Assemblerdatei bekommst du diesen Einsprungpunkt also.

Ob das mit einer Weiterführung in QBasic anstatt in C geht weiß ich allerdings nicht. Müßte man ausprobieren.

Wenn Du mal nach Sourcecode für Betriebssysteme schaust wirst du schnell mehrere Betriebssysteme finden die sogar nur in assembler geschrieben sind. Sourcecode dazu ist auch leicht zu finden inclusive einer beschribung welcher Compiler benutzt werden soll und wie das ganze Funktioniert.

miniversum
Bitte warten ..
Ähnliche Inhalte
Windows Tools
gelöst Suche Programm um Log auszuwerten + Mail notify (3)

Frage von NetzwerkDude zum Thema Windows Tools ...

Windows Tools
gelöst Was treibt das Programm? (11)

Frage von daho2016 zum Thema Windows Tools ...

Windows Installation
gelöst booten von USBstick mit NANO Server - Bootmenue (GPT?) überschrieben (11)

Frage von mukknmohre zum Thema Windows Installation ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (20)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...