delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/07/23/02:13:53

From: jbs30000 AT aol DOT com (Joel)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Quick and Easy DJGPP extended inline assembly question.
Date: 22 Jul 2003 22:51:20 -0700
Organization: http://groups.google.com/
Lines: 26
Message-ID: <84e4e2a9.0307222057.2b678b5d@posting.google.com>
References: <84e4e2a9 DOT 0307211839 DOT 3b86f7d0 AT posting DOT google DOT com> <200307221324 DOT h6MDOhLl019991 AT envy DOT delorie DOT com>
NNTP-Posting-Host: 205.188.208.170
X-Trace: posting.google.com 1058939480 16851 127.0.0.1 (23 Jul 2003 05:51:20 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: 23 Jul 2003 05:51:20 GMT
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

DJ Delorie <dj AT delorie DOT com> wrote in message news:<200307221324 DOT h6MDOhLl019991 AT envy DOT delorie DOT com>...
> > But I'm wondering if there's more, for example, are there any for the
> > segment registers?  Thank you.
> 
> GCC doesn't generally care about segment registers, so it doesn't have
> constraints for them.  The rest of the constraints are documented in
> the gcc internals doc (gccint.info) under "machine descriptions" ->
> "operand constraints"
> 
> http://www.delorie.com/gnu/docs/gcc/gccint_76.html
One more quick question.  Looking at the source for _farpokeb
extern __inline__ void _farpokeb(unsigned short selector, unsigned
long offset, unsigned char value)
{
__asm__ __volatile__(
"movw %w0, %%fs\n"
".byte 0x64 \n"
"movb %b1, (%k2)"
:
: "rm" (selector), "qi" (value), "r" (offset));
}
Looking at the "rm" (selector) and "movw %w0, %%fs" parts, I assume
that this allows selector to be placed directly into the fs register,
right?
Also, "qi" (value) moves value directly into al?
Thanks.

- Raw text -


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