Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: Another Stupid Coder am 16. May 2005, 11:39

Titel: Problem mit lodsb/esi/...
Beitrag von: Another Stupid Coder am 16. May 2005, 11:39
Bei folgendem Code funktioniert lodsb irgendwie nicht...
Wie man sieht ist nach dem lodsb ein cli/hlt eingebaut, Bochs sagt mir bei das eax an dieser Stelle 0x00000000 ist, wenn ich "si" statt "esi" verwende (ich hab schon viel herum-probiert) kommt 0x000000ff in eax...

mov esi, Msg_Welcome
call PutString

jmp $
; =================[ End ]===============================
cli ; disable interrupts.
hlt ; halt the cpu.
; =================[ Misc Data ]=========================
CursorPosition dd 0x00000000
Msg_Welcome db "Welcome", 0

PutString:
mov edx, [CursorPosition]
mov ax, 0x0018
mov es, ax
.1:
lodsb
cli
hlt
or al, al
jz short .2
mov byte [es:edx], al
inc dx
mov byte [es:edx], 0x07
inc dx
jmp .1
.2:
mov [CursorPosition], dx
mov ax, 0x0010
mov es, ax
retn
Titel: Problem mit lodsb/esi/...
Beitrag von: Another Stupid Coder am 16. May 2005, 14:01
Okay, hat sich erledigt ^^ Der Kernel wurde an die falsche Stelle geladen ;D
vielen Dank an BlueXSeven :)
Titel: Problem mit lodsb/esi/...
Beitrag von: FreakyPenguin am 16. May 2005, 17:28
ich hab genau das selbe Problem. wo, hast du den Fehler gefunden ?
Titel: Problem mit lodsb/esi/...
Beitrag von: Another Stupid Coder am 16. May 2005, 19:02
Sag ich doch, der Kernel wurde an die falsche Stelle geladen^^ der Rest funzte trotzdem. mit nem org 0x10000 hat sich das erledigt