2010-03-07 119 views
9

MOV可能是每個人在學習ASM時學到的第一條指令。MOV src dest(或)MOV dest src?

剛纔我遇到了一本書Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona它說:

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

但我瞭解到,這是MOV dest, src。它就像「加載destsrc」。即使Wiki也一樣。

我並不是說作者是錯的。我知道他是對的。但是我在這裏錯過了什麼?

btw ..他正在使用GCC的as來組裝這些說明。但是這不應該改變指令的語法?

+0

我應該讀第1章的前言和第1段我跳過了他們: – claws 2010-03-07 19:27:13

回答

27

mov dest, src叫做英特爾語法

mov src, dest被稱爲AT & T語法

GNU彙編程序使用AT & T語法,我知道的所有其他x86彙編程序都使用Intel語法。你可以閱讀差異on wikipedia

+10

有些人只是想看看世界的燃燒 – Paschalis 2015-05-20 00:49:41

+0

請注意,GNU彙編程序使用AT&T語法_by default_,而不是您可以使用'.intel_syntax noprefix'指令將其切換爲英特爾語法。 – Ruslan 2017-12-06 11:13:33

1

有兩種不同類型的彙編語言語法 - 英特爾和AT & T語法。 您可以在Wikipedia's assembly language page上找到兩者的對比。

您的書可能會使用AT & T語法,其中源操作數位於目標之前。

6

是,as/gas使用AT & T語法使用命令src,dest。 MASM,TASM,NASM等都使用命令'dest,src'。碰巧,AT處理器的語法與英特爾處理器不太匹配,並且(至少IMO)幾乎是不可讀的,例如movzx出現特別差

+0

「無法讀取的混亂」幾乎是它的釘子。 – 2017-06-19 14:39:35

相關問題