From: Ben Peddell 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> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit 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.