home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.asm.x86      Ahh, the lost art of x86 assembly      4,675 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,614 of 4,675   
   Rick C. Hodgin to R.Wieser   
   Re: Indirect INT calling   
   27 Oct 18 06:35:22   
   
   From: rick.c.hodgin@gmail.com   
      
   On Saturday, October 27, 2018 at 8:55:25 AM UTC-4, R.Wieser wrote:   
   > I guess I could push the flags, clear some bitflags in it and than jump   
   > indirect (thru the INT vector table at page zero) to the correct address,   
   > but I'm wondering if there isn't maybe an easier(?), more direct way of   
   > doing it.   
      
   The standard method for calling an interrupt vector is to PUSHF/D,   
   then do a far call.  This puts the three parameters the interrupt   
   vector expects to see on the stack when it issues IRET.   
      
   You could issue an interrupt redirect, where you are intercepting   
   INT Nn, and you choose some unused vector and point it to the   
   original vector you intercept, that way all calls to INT Nn go   
   through you, and then you issue the re-direct to INT Zz that you   
   setup, which goes to the real vector.  Then the called API code   
   issues IRET like normal, then you issue IRET like normal.   
      
   It's a little less efficient on the stack, but it's pretty clean   
   and straight-forward.   
      
   --   
   Rick C. Hodgin   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca