Chinaunix
标题:
宏操作_ _copy_user_zeroing()的代码怎么理解?
[打印本页]
作者:
yyxl
时间:
2008-09-14 08:22
标题:
宏操作_ _copy_user_zeroing()的代码怎么理解?
宏操作_ _copy_user_zeroing()的定义在include/asm-i386/uacces.h中:
#define _ _copy_user_zeroing(to,from,size) \
do{ \
int _ _d0, _ _d1;
_ _asm_ _ _ _volatile_ _(
"0:rep:movl\n" \
" movl %3, %0\n" \
"1: rep:movsb\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3: lea 0(%3,%0,4),%0\n" \
"4: pushl %0\n" \
" pushl %%eax\n" \
" xorl %%eax,%%eax\n" \
" rep; stosb\n" \
" popl %%eax \n" \
" popl %0\n" \
" jmp 2b\n" \
".previous\n" \
".section _ _ex_table, \"a\"\n" \
" .align 4\n" \
" .long 0b,3b\n" \
" .long 1b,4b\n" \
".previous" \
: "=&c"(size), "=&D" (_ _d0), "=&S" (_ _d1 ) \
: "r"(size&3), "0"(size/4), "1"(to), "2"(from) \
: "memory");
}while(0)
这段代码如何理解呢?同时高手给我提供一份GCC的手册,谢谢!
作者:
mars007
时间:
2008-09-14 21:23
情景分析第三章系统调用一节做了非常详细的分析
作者:
yyxl
时间:
2008-09-16 08:51
标题:
回复 #2 mars007 的帖子
虽然那样但是不是很好理解!为什么这样呢?能说过所以原来吗?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2