delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/02/28/13:07:48

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
Date: Thu, 28 Feb 2002 19:22:49 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Luis <luisllo AT alumni DOT uv DOT es>
cc: djgpp AT delorie DOT com
Subject: Re: Help with extended inline asm (or I'm stupid)
In-Reply-To: <6124b64f.0202280857.5d8c4dda@posting.google.com>
Message-ID: <Pine.SUN.3.91.1020228192113.7029A-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On 28 Feb 2002, Luis wrote:

> int obt_flags (char* buffer)
> {    
>     asm (
>         "fsave %0\n\t"
>         : // no outputs
>         : "m" (buffer)
>         : "memory"
>     ); 
> }
> 
> void main(void)
> {
>     char buffer[108];
> 
>     obt_flags(buffer);
>     printf("%s\n",buffer);
> }
> 
> It compiles fine, but when executing it crashes with a sigsev FAULT,
> when executing the print instruction.

The info saved by FNSAVE is not text, it's binary data.  In particular, 
there's no guarantee that it looks like a null-terminated C string.  So 
trying to print that buffer with printf is asking for trouble.

- Raw text -


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