delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/07/25/06:32:51

From: Ben Peddell <killer DOT lightspeed AT bigpond DOT com>
User-Agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.1) Gecko/20020826
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: comp.os.msdos.djgpp
Subject: Re: One final inline assembly constraint question.
References: <84e4e2a9 DOT 0307242201 DOT 4c8dbb84 AT posting DOT google DOT com>
Lines: 17
Message-ID: <2c7Ua.13946$OM3.3560@news-server.bigpond.net.au>
Date: Fri, 25 Jul 2003 09:59:26 GMT
NNTP-Posting-Host: 144.134.89.220
X-Complaints-To: abuse AT bigpond DOT net DOT au
X-Trace: news-server.bigpond.net.au 1059127166 144.134.89.220 (Fri, 25 Jul 2003 19:59:26 EST)
NNTP-Posting-Date: Fri, 25 Jul 2003 19:59:26 EST
Organization: BigPond Internet Services
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Joel wrote:
> I have read up on, and am now pretty familiar with the usual "a" =
> eax, "S" = esi, and so on, but I'd like an example of one of the
> following please.
> "<" Autodecrement addressing memory
> ">" Autoincrement addressing memory
> Thank you.

Unfortunately, gcc does not accept ">" and "<" on the x86 (inconsistent 
operand constraints in an `asm'). It'll bypass the '<' or '>' if you 
specify another constraint with it (Multiple Alternative).
Perhaps because there are no implicitly auto-increment or auto-decrement 
registers on the x86.

If it did accept '<' and '>', then it could cld / std and use ESI for 
the output memory operand and EDI for the input memory operand.

- Raw text -


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