用汇编的眼光?/p>
C++
(之嵌入汇编?/p>
?/p>
声明:版权所有,欢迎转载,请勿用于商业用途?/p>
联系信箱?/p>
feixiaoxing @163.com
?/p>
嵌入式汇编是对纯汇编文件的一种有益补充。通常会有下面几种情况使用到汇编:?/p>
1
)提高代码的工作?/p>
?/p>
,使用到
cpu
的一些特殊指令,比如?/p>
mmx
指令;(
2
)对硬件进行某种特殊的操作,比如说关中断等,?/p>
在内核级的代码中是比较常见的。但是我们讲究嵌入式汇编的一些基本点和大家一起讨论一下,建议大家和我一
起做实验,用事实证明一切?/p>
?/p>
1
)使用嵌入汇编的时候,注意寄存器的保护
[cpp]
view plaincopyprint?
1.
int
process()
2.
{
3.
__asm
4.
{
5.
push ax
6.
push bx
7.
push cx
8.
pop cx
9.
pop bx
10.
pop ax
11.
}
12.
return 1;
13.
}
?/p>
2
)调用函数的时候,直接使用
call
即可,返回值用
eax
传递,同时注意堆栈平衡
[cpp]
view plaincopyprint?
1.
int
add(
int
a,
int
b)
2.
{
3.
return a + b;
4.
}
5.
6.
int
process()
7.
{
8.
int
value = 0;
9.
__asm
10.
{
11.
push eax
12.
push 2
13.
push 3
14.
call add
15.
add esp, 8