Autor Thema: nasm, right shift >> und negativ  (Gelesen 4983 mal)

derwolf

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« am: 05. May 2008, 19:51 »
Hallo Leute,
ich versuche mich gerade an nem "HigherHalf" Kernel. Habe aber folgendes Problem:

init.asm:
KERNEL_VIRTUAL_BASE equ 0xC0000000
KERNEL_PAGE equ (KERNEL_VIRTUAL_BASE >> 22)
...
[section .data]
align 0x1000
BootPageDir:
dd 0x00000083
times (KERNEL_PAGE - 1) dd 0
dd 0x00000083
times (1024 - (KERNEL_PAGE - 1)) dd 0

beim kompilieren kommt dann:
error: TIMES value -257 is negative
laut nasm dokumentation sollten alle >> unsigned sein... check ichs nur net? kann mir da einer weiterhelfen?

Mfg, D.

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 06. May 2008, 10:11 »
der Code, den du hier zeigst, scheint mir Fehler frei zu sein.
und lässt sich bei mir auch problemlos assemblieren.

Zitat
laut nasm dokumentation sollten alle >> unsigned sein... check ichs nur net? kann mir da einer weiterhelfen?
das ist schon richtig, aber nur mal angenommen KERNEL_PAGE hätte den Wert +1282 würde die letzte Zeile trotzdem den Fehler verursachen.
« Letzte Änderung: 12. May 2008, 16:03 von MNemo »
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

derwolf

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 06. May 2008, 19:37 »
Hallo,
danke schonmal MNemo,
hab nun mal folgendes probiert:
BITS 32

KERNEL_VIRTUAL_BASE equ 0xC0000000
KERNEL_PAGE equ (KERNEL_VIRTUAL_BASE >> 22)

section .data
dd KERNEL_PAGE
dd 0x00000083

section .text
start:
und kompiliert... wenn ich nun mit objdump die symbole angucke, dann:
c0000000 l       *ABS* 00000000 KERNEL_VIRTUAL_BASE
ffffff00 l     O *ABS* 00000004 KERNEL_PAGE
mir fällt da einfach net ein, warum des so sein sollte....

derwolf

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 06. May 2008, 20:17 »
Hallo,
habe nu auf die nasm v2.02 gewechselt und siehe da, es geht... hatte vorher die ubuntu-standard-paket version installiert...
naja,
mfg, D

 

Einloggen