www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/09/23/22:37:29

From: leathm AT solwarra DOT gbrmpa DOT gov DOT au (Leath Muller)
Message-Id: <199709240234.MAA28146@solwarra.gbrmpa.gov.au>
Subject: Re: inline asm problem with DJGPP
To: jap AT mundivia DOT es (Javier Arriero País)
Date: Wed, 24 Sep 1997 12:34:44 +1000 (EST)
Cc: djgpp AT delorie DOT com
In-Reply-To: <01bcb53d$0b3b4f00$a4da4cc3@default> from "Javier Arriero País" at Sep 23, 97 00:51:19 am

> 	asm("movb %ah,$0;
> 		movb %al,$0x13;
> 		int $10");
> I get a error message: "operators given don't match any 380 instruction"
> from assembler (as.exe).

Your back to front - your mixing syntax's - your operands move from left
to right, not the Intel format of right to left, so your code should be:

	movb		$0, %ah;		// put value of 0 in register ah
	movb		$0x13, %al;	// put hex 13 into al
	int		$10;			// call interrupt 10

(Why not just movw $0x13, %ax; ?)

> Same days ago, I did't get any error... and I don't want to use <dpmi.h>
> If I write "movb %ah, 0" instead of "movb %ah,$0", i don't get any error,
> but my program don't change the graphic mode.
> What happen???
 
Because you saying move the register ah to memory location 0... which should
have crashed under cwsdpmi (no?) but I'll assume your using Win95 which 
couldn't care less (NT would have cracked a sad as well)

Leathal.

- Raw text -


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