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