其实学汇编主要原因就是想了解下内联编译中的c/c++嵌入汇编,总体来说了解了一些基本的指令,什么加减移位之类的
嵌入汇编函数的返回值放在eax寄存器里
eax寄存器
32位通用寄存器。 EAX寄存器以称为累加器,AX寄存器是算术运算的主要寄存器,所有的输入、输出只使用AL或AX人作为数据寄存器。在80386及其以上的微处理器中,EAX寄存器可以用来存储单元的偏移地址。
EAX可称为数据寄存器,你除了直接访问外,还可分别对其高十六位和低十六位进行访问。它们的低十六位就是把它们前边儿的E去掉,即EAX的低十六位就是AX。而且它们的低十六位又可以分别进行八位访问,也就是说,AX还可以再进行分解,即AX还可分为AH(高八位)AL(低八位)。
附上一个简单程序
poj1000
#include <stdio.h> int plus(int a,int b) { __asm { mov eax,a; mov ebx,b; add eax,ebx; } } int main() { int a,b; while(~scanf("%d%d",&a,&b)) printf("%d\n",plus(a,b)); }