使用宏定義雖然也可以,總是覺得不友善。吾一直想,最好提供一個交換指令,然後直接定義一個函數供調用。
以下代碼沒有經過測試,請自行驗證。
- WINDOWS
int x=1, y=200;
_asm
{
push x;
push y;
pop x;
pop y;
}
printf("x=%d, y=%d\n", x, y);
- LINUX
int x=1, y=200;
asm(
"push x\n\t"
"push y\n\t"
"pop x\n\t"
"pop y\n\t"
);
printf("x=%d, y=%d\n", x, y);