- // 在C//C++中嵌入汇编
- #include <stdio.h>
- #include <iostream.h>
- int power2(int num, int power);
- int main()
- {
- int u=3;
- char sr[]="在C/C++中嵌入汇编";
- __asm
- {
- push u
- lea eax, sr //把str的地址给eax
- push eax
- call printf
- add esp, 8 //等价于调用两个pop eax ,因为有两个参数压栈
- }
- cout<<endl;
- cout<<"3乘2的5次方: "<<endl;
- cout<<power2(3, 5)<<endl;
- return 0;
- }
- int power2(int num, int power)
- {
- __asm
- {
- mov eax, num ; //Get first argument
- mov ecx, power; //Get second argument
- shl eax, cl ; //EAX = EAX * ( 2 to the power of CL)
- }
- /* Return with result in EAX */
- }
存在的问题是,经常死机,任务管理器显示“未响应”。