flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > calling interrupts directly |
Author |
|
vid 15 Mar 2007, 21:25
what's wrong about using "int" instruction?
|
|||
15 Mar 2007, 21:25 |
|
Hayden 15 Mar 2007, 21:48
just playin' around with unfamiliar instructions LGDT, LIDT etc... and this
was my first attempt to try something dumb. |
|||
15 Mar 2007, 21:48 |
|
Tomasz Grysztar 15 Mar 2007, 22:00
LES won't work for you here, and why do you add BX to IDTBase offset? You should rather add it to contents of [IDTBase]. This may look like:
Code: ORG 100H USE16 start: mov ebx,10h add ebx,ebx add ebx,ebx sidt [IDTDesc] mov eax,[IDTBase] add eax,ebx mov di,ax and di,0FFFh shr eax,16-4 mov es,ax mov ax, 19 ; int 10h pushf call far dword [es:di] xor ax, ax int 16h int 20h IDTDesc: IDTLimit dw ? IDTBase dd ? Well, cannot test it under Windows environment, because SIDT gives the Windows' IDT instead of the 16-bit one - which is by standard at 0 address anyway. |
|||
15 Mar 2007, 22:00 |
|
Hayden 30 Apr 2007, 16:24
i've created some dos interrupt code that chains to the last handler via the pushf far call method wich led me back to this thread.
Quote:
Thanks TG. I can now see the error of my ways _________________ New User.. Hayden McKay. |
|||
30 Apr 2007, 16:24 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.