2012-09-25 97 views
3

在clang中進行一些內聯​​彙編(基本上通過使用各種引用猜測我的方式),並且我試圖將%rdi的內容移動到%rdx指向的地址。但是沒有我的語法的工作,這樣的:在x86_64的另一個寄存器中將寄存器內容移動到另一個寄存器中的內存地址

mov %rdi, ptr %rdx 

給出:

error: expected relocatable expression 

有什麼不對? clang中的內聯程序集中的語法是什麼?謝謝。

+0

也許downvoter認爲你的問題缺乏研究努力。除此之外,我看不到一個合理的downvote原因。 (但你應該從你的問題中刪除該編輯,它不屬於那裏。) –

回答

4

我不知道是什麼鐺的彙編語法可能正是,但AT GCC使用& T語法/氣體將是:

movq %rdi, (%rdx) 

英特爾/微軟彙編語法是:

mov qword ptr [rdx], rdi 
+0

謝謝。我在谷歌搜索了至少50次,不知何故我的搜索沒有提出這個特定的語法(括號)。我也用匯編工作了一下,但沒有用gcc風格,也從來沒有見過這個。 –

+1

@Hannes:我所知道的有關(可怕的)AT&T氣體語法的一切,我通過查看'gcc -S some-c-file.c'的輸出得知。 –