MOV src, dest (or) MOV dest, src?

assembly, gnu-assembler, masm, nasm, x86

Solution

`mov dest, src` is called Intel syntax. (e.g. `mov eax, 123`)

`mov src, dest` is called AT&T syntax. (e.g. `mov $123, %eax`)

UNIX assemblers including the GNU assembler uses AT&T syntax, all other x86 assemblers I know of uses Intel syntax. You can read up on the differences on wikipedia.

Problem

MOV is probably the first instruction everyone learns while learning ASM. Just now I encountered a book Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona which says: (broken link removed) But I learnt that it is `MOV dest, src`. Its like "Load `dest` with `src`". Even Wiki says the same. I'm not saying that the author is wrong. I know that he is right. But what am I missing here? btw.. he is using GCC's `as` to assemble these instructions. But that shouldn't change the instruction syntax right?

Original source