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:
_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):
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