使用内联汇编写 ,它的格式有两种,一种是__asm 直接接汇编指令语句,
比如,__asm xor eax, eax //清零eax
另一种是加上花括号,类似于一个函数,比如
__asm {
mov eax, 1 ;1到eax
mov ebx, 2 ;2到ebx
add eax, ebx ;eax 和ebx相加
}
使用内联汇编有个好处可以直接使用C/C++中的变量 ,比如
int a = 2;
__asm mov a, 2 //可以使用变量,只有一条
另外使用内联汇编最需要注意的是数组。比如 int a[2] = {1,2} ;
不可以直接
__asm{
mov a[0], 1
mov a[1], 2
}
这样是错误的, 需要 mov a[0], 1 mov a[4],2 为什么是4呢?因为内联汇编转换后是数组a的地址偏移,而不是序号。
vc中的内联汇编 简单的很, 要是在linux中使用内联汇编,费了劲了。。没事欢迎到 百度 0x30 贴吧 分享一下C/C++的心得,或者加入百度知道 0x30 团队,帮助别人的时候,自己 也可以学到东西 。。
只能编写内嵌汇编
__asm
{
}
中间填写指令