Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
My "muscle memory" is creating many frustrations due to this. I still write MOV incorrectly nearly all the time.
http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax
Intel / MASM Syntax
http://en.wikibooks.org/wiki/X86_Assembly/MASM_Syntax
That said, it was easy enough to switch gears.
tl;dr - It's who wrote the assembler that chooses, not who designed the chip. You can have two different assemblers targeting the same chips's opcodes.
If you check Intel's official documentation for their processors, you'll find that they use <dst>, <src> order. Motorola uses <src>, <dst> instead. So that's what you'll find in most assemblers targeting these respective chips.
Sorry for any confusion.
<dst> <src> also matches parameter order in many C library functions, such as strcpy
It is the dominating syntax for x86. x86-64. (AT&T several times more rare) Also on non-x86 Intel CPUs.
It is also used in most popular assemblers for Z80, ARM, MIPS, IBM Power, Atmel AVR, etc. etc.
More complex with CDC assember or 6502, because in these one of the operands is typically encoded in instruction mnemonic, no matter is it is source or destination. These can be called order-agnostic But more frequently it is destination anyway.
And AT&T is simply ugly, less readable.
Pretty much every puzzle I realise after the first run I've put the operands in the wrong order at least once.