MOV src dest(或)MOV dest src?

cla*_*aws 16 x86 assembly masm gnu-assembler nasm

MOV可能是每个人在学习ASM时学习的第一条指令.

刚才我在GNU/Linux中遇到过一本关于IA32架构的汇编语言编程作者:Rajat Moona说:

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

但我知道它是MOV dest, src.它像"装载destsrc".甚至维基也说同样的话.

我不是说作者错了.我知道他是对的.但我在这里错过了什么?

顺便说一句......他正在使用GCC as来组装这些指令.但这不应该改变指令语法吗?

Mar*_*tin 42

mov dest, src被称为Intel语法.

mov src, dest被称为AT&T语法.

包括GNU汇编程序在内的UNIX汇编程序使用AT&T语法,我所知道的所有其他x86汇编程序都使用Intel语法.您可以阅读维基百科上的差异.

  • 有些人只想看世界燃烧. (20认同)
  • 请注意,GNU汇编程序使用AT&T语法_by default_,而不是无条件.您可以使用`.intel_syntax noprefix`指令将其切换为Intel语法. (3认同)

Jer*_*fin 6

是的,因为/ gas使用AT&T语法,它使用命令src,dest.MASM,TASM,NASM等都使用命令'dest,src'.碰巧,AT&T语法与英特尔处理器不太匹配,并且(至少IMO)是一个几乎难以理解的混乱.例如movzx特别是坏.