Re: Intel assembly questions
Re: Intel assembly questions
- Subject: Re: Intel assembly questions
- From: Eric Albert <email@hidden>
- Date: Wed, 18 Jan 2006 12:39:01 -0800
On Jan 18, 2006, at 12:09 PM, Dave Camp wrote:
On Jan 18, 2006, at 11:45 AM, Jonas Maebe wrote:
On 18 Jan 2006, at 20:31, Dave Camp wrote:
MainLoop:
movzx eax, byte Ptr [esi+4]
...
The last line is the issue. I assume the original syntax is
trying to say 'treat [esi+4] as a byte pointer". Xcode does not
like the "byte Ptr" operands.
"byte ptr" is Intel style only.
Removing those causes the following error: No such 386
instruction: movzl
What is the replacement syntax for "byte Ptr"?
In AT&T style, the operand size is always added to the
instruction. In this case, the above should become
movzbl 4(%esi),êx
Couple of more questions...
Since I've got "Codewarrior Style" enabled, I assume I'm using
Intel style operand ordering, so the operands in your example would
be backwards right?
Yep.
GCC complains there is no movzbl instruction. Changing that to
movzb does not generate an error. Is that equivalent? I don't see
that in my instruction reference docs.
The suffix is typically optional and is used more often in AT&T-style
code. I'm not sure why it's used more frequently there, since it's
usually superfluous. The instruction itself can usually be
determined by the operands.
-Eric
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden