delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/03/09/22:16:46

From: samir AT mindspring DOT com (Samir Barjoud)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Newbie prolem with ASM!
Date: Tue, 10 Mar 1998 03:07:06 GMT
Organization: MindSpring Enterprises
Lines: 36
Message-ID: <3504abd0.12351691@news.miami.mindspring.com>
References: <01bd4bbc$5778a0a0$c1cca8c1 AT rechner-2>
NNTP-Posting-Host: user-37kbvmq.dialup.mindspring.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

On 10 Mar 1998 00:33:00 GMT, "Lennart Marien" <lennartm AT metronet DOT de>
wrote:


>
> _asm_("
> movsw $0x0003, %ax
> int 0x10
> ")

Even if the above had compiled ok...it would not have had the
desired effect at run-time. Since DJGPP compiled programs
run in 32-bit protected mode, you can't directly call a real
mode interrupt. In fact, it would have most likely triggered a 
floating point exception, as that is what vector 16 is used for 
in protected mode. To call a real-mode interrupt do this:

#include <dpmi.h>

void set_text_mode(void) {
   __dpmi_regs r;

   r.x.ax = 0x0003;
   __dpmi_int(0x10,&r);
}

As for the inline assembly, there is nothing you
need to include to use it. The sytax is:

 asm("assembly-statement");


   

Samir Barjoud
samir AT mindspring DOT com

- Raw text -


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