设为首页 加入收藏

TOP

Linux 下内嵌汇示例代码
2014-11-24 07:54:06 来源: 作者: 【 】 浏览:0
Tags:Linux 示例 代码

__asm__ __volatitle__GCC 为 AT&T 汇编语言指令集。


直接上代码,用g++ 编译。


// 数据交换


void AsmSwap(int pData1, int pData2)
{


cout << "before swap: " << endl << "pData1: " << pData1 <#if 0
int temp;
__asm__ __volatile__("movl %1,%0":"=r"(temp): "r"(pData1));
__asm__ __volatile__("movl %1,%0":"=r"(pData1): "r"(pData2));
__asm__ __volatile__("movl %1,%0":"=r"(pData2): "r"(temp));
#endif
__asm__ __volatile__("movl %0,%%ebx"::"r"(pData1));
__asm__ __volatile__("movl %1,%0":"=r"(pData1):"r"(pData2));
__asm__ __volatile__("movl %%ebx,%0":"=r"(pData2):);
cout << "after swap: " << endl << "pData1: " << pData1 << endl << "pData2: " << pData2 << endl;
}


// 加


void AsmAdd(int m, int n)
{
__asm__ __volatile__("add %1,%0":"+r"(m):"r"(n));
cout << "m+n=" << m < }


// 减


void AsmSub(int m, int n)
{
__asm__ __volatile__("sub %1,%0":"+r"(m):"r"(n));
cout << "m-n: " << m << endl;
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇GCC Inline ASM GCC内联汇编 下一篇C/C++ 笔试总结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)