07C0 (Bootstrap)
-
Hallo,
sorry, hat vielleicht nicht gerade was mit ASM zu tun, aber trotzdem:
ich hab da mal 3 Fragen: Bekanntlich wird ja der Bootsector beim Bootstrap nach 07C0 geladen.
1. Warum da hin? Is der Bereich davor reserviert oder belegt?
2. Wie sieht's mit dem Bereich danach aus, is da irgendwas reserviert oder belegt?
3. Wie is der Status der CPU-Register nach dem Booten?Danke!
CU
-
1. da das BIOS dort den Bootloader sucht. Wurde einfach damals von IBM fogeschrieben. Wahrscheinlich liegt vorher das BIOS oder so.
2. da ist nichts reserviert oder belegt, dass hängt von den ausgeführten Programmen/OS ab
3. ich glaub undefiniert, bin mir da aber nicht 100% sicher (schon lang her, dass ich mich mit Bootloadern beschäftigt habe)
-
Zu 1./2. :
linear addr. real-mode address memory type use 0- 3FF 0000:0000-0000:03FF RAM real-mode interrupt vector table (IVT) 400- 4FF 0040:0000-0040:00FF BIOS data area (BDA) 500-9FFFF 0050:0000-9000:FFFF free conventional memory (below 1 meg) A0000-BFFFF A000:0000-B000:FFFF video RAM VGA framebuffers C0000-C7FFF C000:0000-C000:7FFF ROM video BIOS (32K is typical size) C8000-EFFFF C800:0000-E000:FFFF NOTHING F0000-FFFFF F000:0000-F000:FFFF ROM motherboard BIOS (64K is typical size) 100000- ? RAM free extended memory (1 meg and above)
Ich hoffe das sagt genug aus (aus der FAQ von alt.os.development)
0x07c00 ist mehr oder weniger eine Konvention, vielleicht ahtte ganz früher mal ein BIOS ienen grund, die addresse zu nehmen und zwecks abwärtskompatibilität muss das nun für immer und ewig auch so bleibenZu 3.:
Du solltest im Allgemienen immer davon ausgehen, dass in den Registern nichts brauchbares steht. Die einzig sichere Annahme ist die, dass CS:IP auf die physikalische Speicherstelle 0x7c00 zeigt, manche PCs erreichen das durch CS=0x0000 und IP=0x7c00, andere machen CS=0x07c0, IP=0x0000. Imho ist die beste Taktik, dem Assembler per ORG 0 mitzuteilen, dass man auf zweiten Fall baut und gleich am Anfang per[ORG 0] jmp 0x07c0:start start: hier dein Code
sicherstellt, dass es auch so ist.
-
Sehr schön, DANKE!