1
OS-Design / "Hallo Welt" ... und weiter?
« am: 25. September 2004, 01:59 »
Jo, Servus,
ich arbeite nun erstmal im RM, und versuche gerade verzweifelt einen INT-Handler (War das nu eigentlich der richtige Begriff?) selbst zu bauen.
Stoße aber auf Probleme:
Der Code:
Ich hab versucht den Code vor "start:" zu setzten, auch nach "start:",aber
wenn ich den int ausführe/aufrufe geschieht nichts....
Anstelle meiner Ausgabe (die mache ich so):
Wie Ihr seht ist fast nur Copy & Paste, deswegen wundert mich es das es nit funzt.
Und an dieser Stelle frag ich mich nun, "Wie könnte ich sowas Debuggen?"
Geht das überhaupt?
THX,
BB
ich arbeite nun erstmal im RM, und versuche gerade verzweifelt einen INT-Handler (War das nu eigentlich der richtige Begriff?) selbst zu bauen.
Stoße aber auf Probleme:
Der Code:
Code: [Auswählen]
_int0x21:
_int0x21_ser0x01: ; funktion 0x01
cmp al, 0x01 ; funktion 0x01 angefragt?
jne _int0x21_end ; nächste Routine checken
_int0x21_ser0x01_start:
lodsb ; nächstes Byte laden
or al, al ; 0-Byte?
jz _int0x21_ser0x01_end
mov ah, 0x0E ; BIOS Teletype
mov bh, 0x00 ; Page 0
mov bl, 0x07 ; Text-Attribute
int 0x10 ; BIOS-Call
jmp _int0x21_ser0x01_start
_int0x21_ser0x01_end:
jmp _int0x21_end
_int0x21_end:
iret
push dx
push es
xor ax, ax
mov es, ax
cli
mov word [es:0x21*4], _int0x21 ; Pointer auf den Handler
mov [es:0x21*4+2], cs ; Pointer auf CS
sti
pop es
pop dx
füge ich wo ein?Ich hab versucht den Code vor "start:" zu setzten, auch nach "start:",aber
wenn ich den int ausführe/aufrufe geschieht nichts....
Anstelle meiner Ausgabe (die mache ich so):
Code: [Auswählen]
msg db "irgendwas"
mov si, msg
mov al,0x01
int 0x21h
hab ich nur einen leeren Bildschirm.Wie Ihr seht ist fast nur Copy & Paste, deswegen wundert mich es das es nit funzt.
Und an dieser Stelle frag ich mich nun, "Wie könnte ich sowas Debuggen?"
Geht das überhaupt?
THX,
BB