問題タブ [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.
assembly - PMにおけるSelectorとGDTの関係は?
私は、グローバル記述子テーブルについて、ネット上で入手できる多くのチュートリアルを調べました。しかし、64 ビット記述子のすべてのフィールドを詳細に説明しているサイトは見つかりませんでした。さらに、GDT のセレクターの概念に固執しました。セレクターには、GDT フィールドか LDT フィールドかのインデックス、TI があることを知っています。簡単に言えば、セレクターと GDT を関連付ける関係とは何ですか? できれば詳しく説明してください。
ありがとうございました..
assembly - A20 回線は保護モードでどのような役割を果たしますか?
x86 の保護モードの部分を調べています。GDTについて学びました。以前に、保護モード (つまり、すべての 32 ビット アドレス ラインを使用する) に入るには、A20 ゲートを有効にする必要があることを調べました。では、A20 を有効にするコードは 16 ビットである必要があります。最近、wiki.osdev サイトを調べたところ、A20 を有効にするコードが x86 アセンブリで記述されていることがわかりました。X86 アセンブリは、16 ビット モードでロードできない 32 ビット オペコードを生成しますか?
可能であれば説明してください。ありがとうございました。
memory-management - LinuxカーネルがGDTをセットアップする場所
Linuxカーネルコードを読んでいます。Linux の GDT (Global Descriptor Table) について疑問があります。
私の質問は次のとおりです。
カーネルが GDT をセットアップするために 2 つのステップを使用するのはなぜですか?
GRUB をブートローダーとして使用している場合、GRUB は grub-core/kern/i386/realmode.S に 1 つの GDT もセットアップします。Linux がこの GDT をリセットするのはなぜですか?
x86 - Global Descriptor Table とプロテクト モードを設定した後、定期的に再起動する
常に再起動し続けるため、GDT setup
と への切り替えに何か問題があったに違いありません。protected mode
kernel.asm
をセットアップしてGDT
に切り替える必要があるのは次のprotected mode
とおりです。
とありますgdt.inc
:
私bootloader.asm
は10セクターをロードし0x1000:0x000
てそこにジャンプします。
次のコマンドでコードをテストします。
私のせいはどこですか?
x86 - 線形アドレッシングと GDT
GDT のセットアップと保護モードへの切り替えに苦労しています。主な理由は、線形アドレス指定を十分に理解していなかったからです。ここに私のカーネルコード(kernel.asm)があります:
ここにgdt.incがあります:
私のブートローダー(bootloader.asm)があります:
私はUbuntu LTS 14.04 32ビットで作業しており、使用するコマンドは次のとおりです。
プログラムは再起動し続けます。