高手们帮忙看一下这段代码的效果,谢谢!

slimyu 2003-08-22 05:41:31
#define LOCK ""
;============================================
#define LOCK_SECTION_NAME \
".text.lock." __stringify(KBUILD_BASENAME)

#define LOCK_SECTION_START(extra) \
".subsection 1" \
extra \
".ifndef " LOCK_SECTION_NAME \
LOCK_SECTION_NAME ":" \
".endif"

#define LOCK_SECTION_END \
".previous"

;===============这是一段在c语言中的嵌入汇编=============
__asm__ __volatile__(
"# atomic down operation"
LOCK "decl %0" ;* --sem->count */
"js 2f"
"1:"
LOCK_SECTION_START("")
"2:call __down_failed"
"jmp 1b"
LOCK_SECTION_END
:"=m" (sem->count)
:"c" (sem)
:"memory");
;=========================
上面这一段是一个原子操作,可是偶不怎么懂汇编,请各位大侠给俺解释一下是怎么样实现原子操作的,重谢!!
...全文
66 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenm001 2003-09-05
  • 打赏
  • 举报
回复
gcc语法不是太熟,你去www.cosoft.org.cn看看,好像有文档
xwj954 2003-09-03
  • 打赏
  • 举报
回复
好难
slimyu 2003-09-02
  • 打赏
  • 举报
回复
up
slimyu 2003-09-01
  • 打赏
  • 举报
回复
to(Yashmak(双层面纱))
你说的对,不过我没有汇编功底,看不懂,请大家帮我分析一下吧,2百分感激!
bluedreammer 2003-08-25
  • 打赏
  • 举报
回复
看不懂```
紫郢剑侠 2003-08-23
  • 打赏
  • 举报
回复
没用过。
Yashmak 2003-08-22
  • 打赏
  • 举报
回复
你在看linux源代码?
这是AT&A格式的汇编,而且是专用于GCC的,规则很复杂.

参考一下<Linux内核代码情景分析> (毛德操,**,浙大出版)

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧