MOV src dest (or) MOV dest src?

2019-02-01 17:20发布

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:

alt text http://i.imagehost.org/0897/mov.gif

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?

3条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-02-01 17:57

There are two distinct types of assembly language syntax - Intel and AT&T syntax. You can find a comparison of both on Wikipedia's assembly language page.

Chances are your book uses the AT&T syntax, where the source operand comes before the destination.

查看更多
Anthone
3楼-- · 2019-02-01 17:58

Yes, as/gas use AT&T syntax that uses the order src,dest. MASM, TASM, NASM, etc. all use the order 'dest, src". As it happens, AT&T syntax doesn't fit very well with Intel processors, and (at least IMO) is a nearly unreadable mess. E.g. movzx comes out particularly bad.

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2019-02-01 18:04

mov dest, src is called Intel syntax.

mov src, dest is called AT&T syntax.

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.

查看更多
登录 后发表回答