Hallo.
Also ich bin ganz neu im OS-Programmieren, habe aber schon einige Kenntnisse in C++, etc. gesammelt...
Ich m�chte auf meinen 4GB USB-Stick mit C programmieren, daf�r habe ich mir Siblo also Bootloader installiert. (
http://simplux.org/siblo/ )
Danach wollte ich einen einfachen Test mit ASM machen daf�r diesen Code:
mov ax, 1000h
mov ds, ax
mov es, ax
start:� � � � � � � �; Hier f�ngt unser eigentliches "Betriebssystem" an
mov si, nachricht� � ; Wir zeigen einfach nur einen String an
call schreiben� � � �; "schreiben" gibt den String am Bildschirm aus
call lesen� � � � � �; "lesen" wartet bis eine Taste gedr�ckt wurde
jmp reset� � � � � � ; Danach wird die Funktion "reset" aufgerufen
nachricht db "Eine Taste dr�cken, um neu zu starten...",13,10,0
schreiben:
lodsb
or al, al
jz short schreiben_d
mov ah, 0x0E
mov bx, 0x0007
int 0x10
jmp schreiben
schreiben_d:
retn
lesen:
mov ah, 0
int 016h
ret
reset:
db 0Eah
dw 0000h
dw 0FFFFh
Welchen ich dann mit diesen Befehlen unter Linux kompilierte:
nasm -f bin -o kernel.bin kernel.asm
So nun boote ich von meinen Stick und soweit geht noch alles. Nun w�hle ich aus, was es booten soll: kernel.bin
Dann steht dort: Loading kernel (kernel.bin). Ja das steht ewig dort.. Wenn ich nun eine Taste dr�cke, restartet er.. So wie im Code, nur ohne Textausgabe..
Wenn ich nun diese Zeile auskommentiere:
jmp reset
restartet er nicht... wieso gibt er mir bitte keinen Text aus??
Ich hoffe jemand kann mir helfen..
Mfg
Philipp