インラインアセンブラでmovqとかで直接読み出せないので,call命令を使う.
参考「OSDev.org」
#include <iostream> int main(int argc, char **argv) { unsigned long rip = 0; __asm__ __volatile__ ("call 1f\n\t" "1: pop %0;\n\t" :"=r"(rip)); std::cout << "rip is " << std::hex << std::showbase << rip << std::endl; return 0; }