Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: syxce am 09. December 2005, 15:01
-
Hallo,
ich habe mal so herum probiert und lies durch einen ganz simplen Kernel Text ausgebenund jetzt kommts, manche Texte kann er ausgeben und manche nicht, da meldet Bochs den Fehler "IRET: top 6 bytes of stack not within stack limits", dies wird jedoch nur ausgegeben bei dem Text "Hallo mein Name ist Computer", wenn ich jetzt den Text "Welcome to my OS" ausgeben lasse funktionierts wieder :? :?
Oder bei "Hello how was your day, my day as a computer is always the same, very boring" funktionierts auch wieder wobei es bei "Hallo ich bin die Nummer eins" wieder nicht geht ??
Das verstehe ich nicht ganz, weiß einer von euch weiter ?
danke
-
Ohne Code kann dir hier niemand helfen!!!
-
Hier der Mini Kernel, "msg" ist die oben beschriebene Nachricht.
mov ax, 1000h
mov ds, ax
mov es, ax
start:
mov si, msg
call putstr
msg db "Welcome to my OS",13,10,0
putstr:
lodsb
or al, al
jz short putstrd
mov ah, 0x0E
mov bx, 0x007
int 0x10
jmp putstr
putstrd:
retn
-
Hallo,
der Bytecode von msg wird auch ausgeführt. Um das zu verhindern musst du nach call putstrhang:
jmp hang
einfügen.
N43