| Zeile 24: | Zeile 24: | ||
xor ax, ax | xor ax, ax | ||
mov es, ax | mov es, ax | ||
| − | + | ||
| − | + | ; IRQs deaktivieren: Dies ist nur notwendig, damit nicht während des Anpassens der IVT ein IRQ auftritt, welcher für den Fall, dass | |
| − | mov WORD [es:0 | + | ; a) wir hier den Interruptvektor des IRQ verändern |
| − | + | ; b) der IRQ-Handler seinerseits den hier veränderten Interruptvektor aufruft | |
| + | ; zu undefiniertem Verhalten führen kann. | ||
| + | cli | ||
| + | |||
| + | ; Offset: Die Adresse unserer Interrupt Service Routine | ||
| + | mov WORD [es:0], __int0x00 | ||
| + | |||
| + | ; Segment: Wir geben hier das momentane Codesegment an | ||
| + | mov WORD [es:0+2], cs | ||
| + | |||
| + | ; IRQs wieder aktivieren | ||
| + | sti | ||
</asm> | </asm> | ||