fineamy 发表于 2006-9-19 11:37:29

linux汇编中出现频率太高了---不得不懂的语言构成!

这是在linux2.6 schedule()阅读中碰到的语句,类似使用很多,



#define loadsegment(seg,value)                        \
      asm volatile("\n"                        \
                "1:\t"                              \
                "mov %0,%%" #seg "\n"                \
                "2:\n"                              \
                ".section .fixup,\"ax\"\n"      \
                "3:\t"                              \
                "pushl $0\n\t"                        \
                "popl %%" #seg "\n\t"                \
                "jmp 2b\n"                        \
                ".previous\n"                        \
                ".section __ex_table,\"a\"\n\t"      \
                ".align 4\n\t"                        \
                ".long 1b,3b\n"                        \
                ".previous"                        \
                : :"rm" (value))

请问大虾们,该段代码中有几个问题,
1.".section .fixup,\"ax\"\n"什么意思,
2.同样的,".section __ex_table,\"a\"\n\t"什么意思,
3.这里".previous"是否定义了一个段?
请大虾们不吝赐教,谢谢!

manioster 发表于 2006-9-19 17:11:27

http://www-128.ibm.com/developerworks/cn/linux/l-assembly/

fineamy 发表于 2006-9-19 19:16:54

谢谢

AT&T汇编
页: [1]
查看完整版本: linux汇编中出现频率太高了---不得不懂的语言构成!