3 x86 assembly nasm cpu-registers mov
大会上我有点生疏了.我想问你们一些问题.
1)这些装配说明在NASM中是否有效?
2)有什么区别,什么时候应该使用它们?
mov EAX,EBX
VS
mov EAX,[EBX]
小智 11
mov EAX,EBX
在EAX中移动EBX的值,而
mov EAX, [EBX]
Run Code Online (Sandbox Code Playgroud)
在EBX中移动地址的值(因此EBX必须包含有效的地址,如果不是,则会返回分段错误).
你会读C吗?如果是这样的话,给定先前的定义int a, b;,第一条指令或多或少等于
a = b;
Run Code Online (Sandbox Code Playgroud)
而给定先前的定义int a, *b;,第二条指令或多或少等于
a = *b;
Run Code Online (Sandbox Code Playgroud)
除了EAX和EBX是寄存器而不是堆栈驻留变量。
可以说的很多很多,但是前面的内容为您提供了这个想法。
(顺便说一句,与过去GNU的汇编程序相比,NASM(我承认过去五年没有使用过)以相反的顺序显示了参数。NASM将目标寄存器放在左侧,将源寄存器放在右侧,而将GNU放在左侧)与GNU的“ AT&T语法”相比,NASM的约定也称为“ Intel语法”。)