2012-04-28 119 views
3

我在Assembly上有點生疏。我想問你們一些問題。mov指令在nasm中的含義

1)這些彙編指令是否在NASM中有效?
2)有什麼區別,我們應該什麼時候使用它們?

MOV EAX,EBX

VS

MOV EAX,[EBX]

回答

8

MOV EAX,EBX

在EAX移動EBX的值,同時

mov EAX, [EBX] 

在EBAX中移動地址的值(因此EBX必須包含有效的地址,否則它將返回一個分段錯誤)。

+0

+1。祝賀您獲得投票權! (您的答案是好的。) – thb 2012-04-29 00:10:29

+1

祝賀您獲得發表評論的權利!一個答案不錯。 – thb 2012-04-29 00:37:55

3

你能閱讀C 2如果是這樣的話,給定的現有的定義int a, b;,第一指令是

a = b; 

而,鑑於現有定義int a, *b;或多或少等價物,所述第二指令是

a = *b; 

或多或少相當於除了EAX和EBX是寄存器而不是堆棧駐留變量。

有很多,可以說更多,但前述給你的想法。 (順便說一下,在過去的五年中,我承認我沒有使用NASM--與GNU的彙編程序相比,它們以相反的順序提供參數.NAMM將目標寄存器放在左邊,源寄存器放在右,而GNU則相反。NASM的約定也比對GNU的名爲 「Intel語法」, 「AT & T語法。」)