vc内联汇编 使用__asm关键字,可以同时使用汇编注释或c/c++注释
__asm mov eax,ebx
__asm
{
mov eax,ebx
}
vc内联汇编 可以直接引用c/c++中的符号
例如:
int func(int);
int var;
__asm{
mov eax,var
add eax,2
push eax
call func ;// func(var+2)
}
对于全局变量(或静态变量)和局部变量,可以直接引用
例如:
int a=1
__asm {
mov eax,a;//eax = 1
}
对于类(或结构)的成员变量,符号被解析为(相对数据结构首地址的)偏移地址
例如:
class A
{
int a;
int b;
int func();
}
int A::func()//ecx 传递 this指针
{
__asm{
mov eax,[ecx+b]; //eax = this->b
}
}