Hallo,
Ich hab ein paar Fragen zum Beispiel, wie man eine Division durch Null abfängt (im Artikel IVT). Ich hab dazu einfach mal einen dummen Kernel gemacht, der nur eine Meldung ausgibt, das Makro verwenden soll und das Ganze dann anhand einer Division durch Null testen soll:
mov ax, 0x0800
mov ds, ax
mov es, ax
start:
xor bx, bx
; ... hier ist der Startcode ...
IVT.Handlerwahl 0x00, IRQ_0x00
; ... hier kommt dann noch irgendein Code ...
IRQ_0x00: ;Handler für IRQ 0
; ... hier kann ein Hinweistext geschreiben werden o.ä. ...
iret
;Testen anhand einer Division durch Null
xor ax, ax
div ax
%macro IVTHandlerwahl 2
push ax
push es
xor ax, ax
mov es, ax
cli
mov WORD [es:%1*4], %2
mov WORD [es:%1*4+2], cs
sti
pop es
pop ax
%endmacro
end:
jmp end
Leider kommt beim assemblieren die Meldung
error: parser: instruction expected
und zwar beim Aufruf des Makros in der Zeile :
IVT.Handlerwahl 0x00, IRQ_0x00
Könnt ihr mir sagen, wie ich das Makro richtig aufrufen kann und welchen Code ich wo einfügen muss, damit er bei einer Division durch Null z.B. zum Anfang des "Kernels
" springt ?
Vielen Dank !