2008年11月04日

[仮想化] GCCのインラインアセンブラからSIDT命令を実行 (Red Pillを実行)

Red Pillの方式でやると,セグメンテーション違反を起こす事があるので,インラインアセンブラから実行する方法.
#include <stdio.h>

struct {
        unsigned short limit;
        unsigned int base;
} __attribute__ ((packed)) idtr;

int main(int argc, char * argv[])
{
  asm ("sidt %0" : "=m" (idtr));
  printf("IDTR base=0x%X limit=0x%X\n",(int)idtr.base, (int)idtr.limit);
}

posted by dev-man at 13:48| Comment(0) | TrackBack(0) | 仮想化 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック