上次在《关于内联汇编的几个技巧》一文中只是简单地介绍了如何在C++中使用内联汇编,这一次先对上一次的文章作一补充,然后介绍如何使用MMX指令。
一、内联汇编的一般原则:
1、自由使用通用寄存器;(EAX,EBX,ECX和EDX)
2、其它寄存器利用堆栈保留,使用,最后恢复;
一般的像下面这样:__asm{
push ebp
push esp
……….//使用EBP和ESP
pop esp
pop ebp
}
二、内联汇编__asm可以单独使用:
例如:__asm mov eax,anyval1
__asm mov ebx,anyval2
三、函数返回值可以直接放到eax中,可以不理会警告
例如:int anyfun(……/*anyparm*/)
{
int irtn; //函数返回值
…… //函数语句
__asm mov eax,irtn //代替return irtn;但编译器会发出警告,可以不理它
}
四、内联汇编不区分大小写,语法同普通汇编
例如:__asm{
注意:C++的变量还是区分大小写的
mov eax,ebx
MOV EAX,EBX //同上一句
}
时间: 2025-01-30 06:09:19