📄 00000005.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: holly (holly), 信区: Linux <BR>标 题: Re: 在读Linux源代码遇到的问题 <BR>发信站: BBS 水木清华站 (Tue Nov 9 11:23:16 1999) <BR> <BR>【 在 limbo (每日逢君不见君) 的大作中提到: 】 <BR> <BR>faint, 回这篇文章中间华东南地区网的路由断了 3 次, <BR>于是我就写了三次... <BR> <BR>∶<I> 现在读include\asm-i386\bitops.h的一段代码时,几如读天书,这段代码如下: </I><BR>∶<I> extern __inline__ void set_bit(int nr, volatile void * addr) </I><BR>∶<I> { </I><BR>∶<I> __asm__ __volatile__( LOCK_PREFIX </I><BR>∶<I> "btsl %1,%0" </I><BR>∶<I> :"=m" (ADDR) </I><BR>∶<I> :"ir" (nr)); </I><BR>∶<I> } </I><BR>∶<I> 问题: </I><BR>∶<I> (1) __asm__ 是什么意思? 难道和编译器有关? </I><BR> <BR> inline assembler of gcc <BR> <BR>∶<I> (2) __volatile__ 是什么意思? </I><BR> <BR> inhibit the optimization in these codes. Let the gcc create codes <BR>according to the assembler codes restrictly <BR> <BR>∶<I> (3) LOCK_PREFIX 是什么意思? </I><BR>∶<I> (4) "btsl %1, %0" 似乎是一个汇编指令, 我可以查到这是什么指令吗? 如何查? </I><BR> <BR> Look the Intel's i386 instruction manual. NOTE gcc uses AT&T format, <BR>not Intel format. <BR> <BR>∶<I> (5) :(ADDR) 似乎是 %1 或 %0所对应的值,是对应%1还是%0? "=m"似乎是参数? </I><BR> <BR> "=m", output to memory directive, the mmeory address is ADDR <BR> ADDR -> %0, nr -> %1 <BR> <BR>∶<I> (6) 以上这些问题的解决我可以查什么资料呢? </I><BR> <BR> info gcc <BR> <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.120.13.24] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -