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? 
                  
                 | 
              |||
                  
  | 
              
| 
                  
                   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.  | 
              |||
                  
  | 
              
| 
                  
                   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.  | 
              |||
                  
  | 
              
| 
                  
                   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.  | 
              |||
                  
  | 
              
< Last Thread | Next Thread >  | 
    
Forum Rules: 
  | 
    
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.