#define get_seg_byte(seg,addr) ({ /
register char __res; /
__asm__("push %%fs;mov %%ax,%%fs;movb %%fs:%2,%%al;pop %%fs" /
:"=a" (__res):"0" (seg),"m" (*(addr))); /
__res;})
解释:这个宏定义的括号里的内容的最后部分__res;作为本宏的替换值,也就是get_seg_byte(seg,addr)将会由__res替换
#define get_seg_byte(seg,addr) ({ /
register char __res; /
__asm__("push %%fs;mov %%ax,%%fs;movb %%fs:%2,%%al;pop %%fs" /
:"=a" (__res):"0" (seg),"m" (*(addr))); /
__res;})
解释:这个宏定义的括号里的内容的最后部分__res;作为本宏的替换值,也就是get_seg_byte(seg,addr)将会由__res替换