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, 3607 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
Audio
Win10: Abspielen Audio-CD geht nicht - CDA (2)

Frage von Michi1 zum Thema Audio ...

Windows 10
Programm während Windows Bootvorgang laden bzw. ausführen (10)

Frage von Marabunta zum Thema Windows 10 ...

Batch & Shell
gelöst Ich Möchte in einem Batch Programm User erstellen (14)

Frage von Gangster137910 zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (15)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...