問題タブ [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 に答える
533 参照

assembly - PMにおけるSelectorとGDTの関係は?

私は、グローバル記述子テーブルについて、ネット上で入手できる多くのチュートリアルを調べました。しかし、64 ビット記述子のすべてのフィールドを詳細に説明しているサイトは見つかりませんでした。さらに、GDT のセレクターの概念に固執しました。セレクターには、GDT フィールドか LDT フィールドかのインデックス、TI があることを知っています。簡単に言えば、セレクターと GDT を関連付ける関係とは何ですか? できれば詳しく説明してください。

ありがとうございました..

0 投票する
2 に答える
502 参照

assembly - A20 回線は保護モードでどのような役割を果たしますか?

x86 の保護モードの部分を調べています。GDTについて学びました。以前に、保護モード (つまり、すべての 32 ビット アドレス ラインを使用する) に入るには、A20 ゲートを有効にする必要があることを調べました。では、A20 を有効にするコードは 16 ビットである必要があります。最近、wiki.osdev サイトを調べたところ、A20 を有効にするコードが x86 アセンブリで記述されていることがわかりました。X86 アセンブリは、16 ビット モードでロードできない 32 ビット オペコードを生成しますか?

可能であれば説明してください。ありがとうございました。

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

memory-management - LinuxカーネルがGDTをセットアップする場所

Linuxカーネルコードを読んでいます。Linux の GDT (Global Descriptor Table) について疑問があります。

私の質問は次のとおりです。

カーネルが GDT をセットアップするために 2 つのステップを使用するのはなぜですか?

GRUB をブートローダーとして使用している場合、GRUB は grub-core/kern/i386/realmode.S に 1 つの GDT もセットアップします。Linux がこの GDT をリセットするのはなぜですか?

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

x86 - Global Descriptor Table とプロテクト モードを設定した後、定期的に再起動する

常に再起動し続けるため、GDT setupと への切り替えに何か問題があったに違いありません。protected mode

kernel.asmをセットアップしてGDTに切り替える必要があるのは次のprotected modeとおりです。

とありますgdt.inc

bootloader.asmは10セクターをロードし0x1000:0x000てそこにジャンプします。

次のコマンドでコードをテストします。

私のせいはどこですか?

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

x86 - 線形アドレッシングと GDT

GDT のセットアップと保護モードへの切り替えに苦労しています。主な理由は、線形アドレス指定を十分に理解していなかったからです。ここに私のカーネルコード(kernel.asm)があります:

ここにgdt.incがあります:

私のブートローダー(bootloader.asm)があります:

私はUbuntu LTS 14.04 32ビットで作業しており、使用するコマンドは次のとおりです。

プログラムは再起動し続けます。