delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/11/04/06:00:14

From: ggerard AT iname DOT com (Gregory Gerard)
Newsgroups: comp.os.msdos.djgpp
Subject: question about inline asm not answered in FAQs (or pseudo FAQs)
Message-ID: <ggerard-0411990007380001@adsl-216-101-242-90.dsl.snfc21.pacbell.net>
X-Newsreader: MT-NewsWatcher 2.4.4
X-Face: 8b[O#_YSJ$C:ZMh\DC?"A`o]Q?"dT`YVBG~"#WND}\I0sYR,,M0]MC
Date: Thu, 04 Nov 1999 00:07:38 -0800
NNTP-Posting-Host: 216.101.242.90
X-Complaints-To: abuse AT swbell DOT net
X-Trace: typhoon01.swbell.net 941703012 216.101.242.90 (Thu, 04 Nov 1999 00:10:12 PST)
NNTP-Posting-Date: Thu, 04 Nov 1999 00:10:12 PST
Organization: SBC Internet Services
Lines: 18
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

I could not find the answer in any of the FAQs I've seen floating around
which cover the subject of inline asm in gcc, nor could I find the answer
in the docs, so I thought I'd ask here.  I may be blind though...

okay, one of the inputs to my __asm__() block is a unsigned char (1 byte)
in position 0.  I can refer to the upper and lower portions of the
register that got assigned by saying %b0 and %h0 and the register as word
by saying %w0.  However, when I go to do a 32-bit op (say, shll %16, %0),
I get an error because %0 gets plugged as %bl.

I learned about %w, %h, and %b by looking at other asm examples but I
haven't come accross any code that has this situation and I can extract
the key.  What's the answer and where do I find full descriptions of how
inline asm is done with a target of i386 (the 68k examples in the GNU docs
are pretty weak.)

thanks,
greg

- Raw text -


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