简单了解C语言内嵌汇编
发布时间:2020-12-16 09:07:31 所属栏目:百科 来源:网络整理
导读:最近看自旋锁的实现,自选锁的循环查找锁的主要实现类似如下,该实现使用到了内嵌的汇编(摘自sanos内核,源代码有2处实现,一处使用intel汇编,是没有问题的,另一处使用内嵌汇编语法,源代码中为cmpxchgl %2,%0,是错误的,应该是cmpxchgl %0,%2) 内嵌汇
最近看自旋锁的实现,自选锁的循环查找锁的主要实现类似如下,该实现使用到了内嵌的汇编(摘自sanos内核,源代码有2处实现,一处使用intel汇编,是没有问题的,另一处使用内嵌汇编语法,源代码中为cmpxchgl %2,%0,是错误的,应该是cmpxchgl %0,%2) 内嵌汇编有个固定格式,如下: asm ( assembler template /* 汇编语句 */ : output operands 输出 : input operands 输入 : list of clobbered registers ); cmpxchgl的描述如下:
使用C语言翻译如下:
int atomic_compare_and_exchange(int *dest,int exchange,1)">int comperand) { int old = comperand; if ( comperand== *dest) { *dest = exchange; } else { old = *dest; } return old; } ?
参考:http://blog.chinaunix.net/uid-23955580-id-2945814.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |