2012-04-28 113 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语法。”)