問題タブ [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.

0 投票する
1 に答える
402 参照

gcc - インライン アセンブリ コードでトリプル フォールトが発生するのはなぜですか?

オプションを指定して GCC を使用してコードをコンパイルし-masm=intelます。カーネルは、GRUB などのマルチブート ローダーによってロードされます。

GDT のアドレスをロードしてから、すべてのセグメント レジスタをリロードしたいのですが、これによりトリプル フォールト (仮想マシンの再起動) が発生します。このコードは、ネイティブ アセンブリ (.asm ファイル) で使用すると機能します。

gdt.c:

これは私の gdt.h です:

機能させるにはどうすればよいですか?

0 投票する
0 に答える
125 参照

x86 - ページテーブルと GDT は同じものですか?

「ページ テーブル」の概念と GDT の違いは何ですか?
2つは同じですか?
それとも、GDT はページ テーブルの概念の単なる実装ですか?

0 投票する
0 に答える
88 参照

assembly - 64 ビット プロセッサでの NULL セレクタの混乱

私の英語が下手ですみません。

保護モードでは、アウト オブ セグメント リミットが #GP をトリガーします。しかし、64 ビット プロセッサ (I7-3840、i5-3540) では奇妙な問題があります。リアル モードで DS または ES を 0 に初期化し、保護モードに切り替えても、ロードされたリアル モードのディスクリプタ キャッシュ値を使用します:(DS_base_address = 0, limit = 0xFFFF.) このとき、DS や ES で 0xFFFF を超えるメモリにアクセスしても #GP は発生しません。

コードスニペット