在nasm中的mov教学的意义

时间:2012-04-28 23:58:07

标签: assembly x86 nasm cpu-registers mov

我在大会上有点生疏。我想问你们一些问题。

1)这些装配说明在NASM中是否有效?
2)有什么区别,什么时候应该使用它们?

  

mov EAX,EBX

VS

  

mov EAX,[EBX]

2 个答案:

答案 0 :(得分:10)

mov EAX,EBX

在EAX中移动EBX的值,而

mov EAX, [EBX]

在EBX中移动地址的值(因此EBX必须包含有效地址,否则会返回分段错误)。

答案 1 :(得分:3)

你能读C吗?如果是,则根据先前的定义int a, b;,第一条指令或多或少等同于

a = b;

然而,鉴于先前的定义int a, *b;,第二条指令或多或少等同于

a = *b;

除了EAX和EBX是寄存器而不是堆栈驻留变量。

还有很多可以说的,但前面给出了你的想法。

(顺便说一句,NASM - 我承认在过去的五年里没有使用过 - 与GNU的汇编程序相比,它提出了相反的顺序.NASM将目标寄存器放在左边,源寄存器放在右边而GNU则反过来。与GNU的“AT& T语法”相比,NASM的惯例也称为“Intel语法”。)