#include struct { unsigned short limit; unsigned long base; } __attribute__((packed)) idtr; int main(){ asm("sidt %0" : "=m" (idtr)); fprintf(stdout, "0x%.8lx\n",(unsigned long)idtr.base); return 0; }