問題タブ [gdt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - インライン アセンブリ コードでトリプル フォールトが発生するのはなぜですか?
オプションを指定して GCC を使用してコードをコンパイルし-masm=intel
ます。カーネルは、GRUB などのマルチブート ローダーによってロードされます。
GDT のアドレスをロードしてから、すべてのセグメント レジスタをリロードしたいのですが、これによりトリプル フォールト (仮想マシンの再起動) が発生します。このコードは、ネイティブ アセンブリ (.asm ファイル) で使用すると機能します。
gdt.c:
これは私の gdt.h です:
機能させるにはどうすればよいですか?
x86 - ページテーブルと GDT は同じものですか?
「ページ テーブル」の概念と GDT の違いは何ですか?
2つは同じですか?
それとも、GDT はページ テーブルの概念の単なる実装ですか?
assembly - 64 ビット プロセッサでの NULL セレクタの混乱
私の英語が下手ですみません。
保護モードでは、アウト オブ セグメント リミットが #GP をトリガーします。しかし、64 ビット プロセッサ (I7-3840、i5-3540) では奇妙な問題があります。リアル モードで DS または ES を 0 に初期化し、保護モードに切り替えても、ロードされたリアル モードのディスクリプタ キャッシュ値を使用します:(DS_base_address = 0, limit = 0xFFFF.) このとき、DS や ES で 0xFFFF を超えるメモリにアクセスしても #GP は発生しません。
コードスニペット