www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/03/20/13:09:01

From: Martin Str|mberg <ams AT ludd DOT luth DOT se>
Message-Id: <199903201808.TAA28613@father.ludd.luth.se>
Subject: Re: Some assembly questions
To: mert0407 AT sable DOT ox DOT ac DOT uk
Date: Sat, 20 Mar 1999 19:08:48 +0100 (MET)
Cc: djgpp AT delorie DOT com (DJGPP)
In-Reply-To: <199903201755.SAA12254@zed.ludd.luth.se> from George Foot at "Mar 20, 99 05:53:11 pm"
X-Mailer: ELM [version 2.4ME+ PL15 (25)]
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

According to George Foot:
> On 20 Mar 99 at 12:01, Martin Str|mberg wrote:
> 
> > : _go32_dpmi_seginfo old_isr, new_isr;
> > Added line
> > unsigned long address_of_old_isr
> 
> What about the segment of the old ISR?  I don't think you 
> should just assume it's in your CS.

Right!

Now my assembly looks like:
asm("
.text
.p2align 2

.globl _handler
_handler:
/* Makes no diff.: */
pushw %ds
pushw %cs
popw %ds
pushw %fs
movw (_selector_of_old_isr), %fs
lcall %fs:(_address_of_old_isr)
/* ret or iret makes no difference. */
/* Additionaly, if the instruction above is a jmp is doesn't matter. */
popw %fs
popw %ds
iret
_handler_end:
nop

");

And it's still behaving just as badly.


Lush, Split,

							MartinS

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019