PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bootcode in GAS



Eekhoorn
14-10-2005, 16:12
Hallo ihr,

ich hab mir mal folgende Zeilen aus dem Grub-Projekt rausextrahiert:


/* Absolute Adressen */
#define ABS(x) (x-_start+0x7c00)

/* Quelldatei */
.file "boot.S"

.text

/* Wir befinden uns noch im RealMode
Deswegen 16-bit-Adressierung. */
.code16

.global _start; _start:

/* Springe zum nächsten Befehl
(manche BIOSe springen zu 07C0:0000 statt 0000:07C0) */

ljmp $0, $ABS(real_start)

real_start:
jmp real_start

/* Bootcode endet mit 55 AA */

. = _start + 0x1FE
.word STAGE1_SIGNATURE


allerdings meckert hier GAS nur:

[code]D:\os>as boot.S
boot.S: Assembler messages:
boot.S:18: Error: junk `(real_start)' after expression{/code]

Woran kann das liegen? Ich hab leider im Quellcode von Grub auch keine weiteren Anhaltspunkte dazu gefunden, was ich mit real_start anstellen muss.


Hintergrund zu dem ganzen: Ich will eine Facharbeit über Betriebssystemprogrammierung schreiben


Beste Grüße und besten Dank,
Thomas

quinte17
15-10-2005, 07:12
liegt wahrscheinlich an dieser zeile:
ljmp $0, $ABS(real_start)

dies sieht mir nicht korrekt aus, auch wenn ich kein assambler profi bin :D

greetz