Forum: PC-Programmierung NASM Verständnisfrage


von Alf R. (bitbit)


Lesenswert?

Ich bastle gerade an einem eigenen Bootloader und verstehe diese NASM 
Anweisung nicht:
1
times 512-($-$$) db 0
Wiederhole db 0,aber was sagt mir das Argument 512-($-$$) von times?
Für was steht $ und $$?
Warum Klammern?

Mfg bitbit

von Bartli (Gast)


Lesenswert?

> Für was steht $ und $$?

http://www.nasm.us/xdoc/2.09.06/html/nasmdoc3.html#section-3.5

Dein Binary soll anscheinend mit 0 aufgefüllt werden.

> Warum Klammern?

http://de.wikipedia.org/wiki/Assoziativgesetz

von Alf R. (bitbit)


Lesenswert?

Sind $ und $$ also Zahlenwerte, die als "Sprungmarken" verwendet werden 
können?

von Bartli (Gast)


Lesenswert?

Es sind Werte die du beliebig (naja, nahezu) in Ausdrücken verwenden 
kannst. Als Label (= Sprungmarke) sind sie wohl am wenigsten nützlich, 
ausser du willst eine Endlosschleife programmieren:
1
jmp $

von PNoob (Gast)


Lesenswert?

Der Befehl "times 512-($-$$) db 0" würde in Pseusosprache so aussehen 
"times 512-(startadresse-endadresse) db 0"
Also der Befhel rechnett aus wieviele Bytes von der letzten anweisung 
bis 512 Byte svoll sind fehlen und schreibt sooft db0 da hin.

PNoob

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.