Hallo,
wenn ich nun in C weiter schreiben möchte, wo bzw. wie müsste ich hier einen call machen ?
Und wie muss ich das dann assemblieren oder verbinden wenn ich nun eine bootloader.bin eine kernel.bin und eine kernelc.bin habe ?
danke schon mal
Hier der Code wo ich diesen call zu c machen will:
wenn ich nun in C weiter schreiben möchte, wo bzw. wie müsste ich hier einen call machen ?
Und wie muss ich das dann assemblieren oder verbinden wenn ich nun eine bootloader.bin eine kernel.bin und eine kernelc.bin habe ?
danke schon mal
Hier der Code wo ich diesen call zu c machen will:
Code: [Auswählen]
mov ax, 1000h
mov ds, ax
mov es, ax
push dx ;wieso dx? meinst du ax?
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
start:
mov si, msg
mov al, 0x01
int 0x21
call getkey
jmp reboot
msg db "Interrupt ausgeführt",13,10,0
_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
getkey:
mov ah, 0
int 016h
ret
reboot:
db 0EAh
dw 0000h
dw 0FFFFh

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert
