これは私が見ている資料です http://hosted.cjmovie.net/TutMultitask.htm
誰かが次のアセンブリコーディングで私を助けてくれれば感謝します
pusha ;Push all standard registers
push ds ;Push segment d
push es ;Push segmetn e
push fs ; ''
push gs ; ''
レジスタとセグメントは、プロセスのカーネル レベルのスタックに保存されますが、正しいですか?
mov eax, 0x10 ;Get kernel data segment
mov ds, eax ;Put it in the data segment registers
mov es, eax
mov fs, eax
mov gs, eax
カーネル データ セグメント記述子をロードする目的は何ですか?
push esp ;Push pointer to all the stuff we just pushed
call _TaskSwitch ;Call C code
_TaskSwitch を呼び出す前に esp が保存されるのはなぜですか?
ありがとう