Autor Thema: Fehler bei Textausgabe durch Bochs...  (Gelesen 2622 mal)

syxce

  • Beiträge: 45
    • Profil anzeigen
Gespeichert
« 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

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 09. December 2005, 19:03 »
Ohne Code kann dir hier niemand helfen!!!
db 0x55AA

syxce

  • Beiträge: 45
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 10. December 2005, 11:47 »
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

N43

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 10. December 2005, 12:34 »
Hallo,

der Bytecode von msg wird auch ausgeführt. Um das zu verhindern musst du nach call putstrhang:
   jmp hang
einfügen.


N43

 

Einloggen