find_first_page.h

来自「阿基米德操作系统的源代码」· C头文件 代码 · 共 23 行

H
23
字号

///////////////////////////////////////////////////////////////////////////
#define find_first_page(addr) ({				\	int __res;									\	__asm__("cld\n"								\			"1:\tlodsl\n\t"						\			"notl %%eax\n\t"					\			"bsfl %%eax,%%edx\n\t"				\			"je 2f\n\t"							\			"addl %%edx,%%ecx\n\t"				\			"jmp 3f\n"							\			"2:\taddl $32,%%ecx\n\t"			\			"cmpl $32768,%%ecx\n\t"				\			"jb 1b\n"							\			"3:"								\			:"=c" (__res)						\
			:"c" (0),"S" (addr));				\	__res;})
///////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?