私は現在、Robert Loveの「Linuxカーネル開発」を読んでいますが、この組み立てが何をしているのか分かりません。linuxカーネル開発
基本的に、各プロセスカーネルスタックには、スタックの最後にあるstruct thread_info
があります。さて、x86アーキテクチャ上で、我々は明らかに論理積をとるので、基本的には次のアセンブリに0xffffe000により、スタックポインタを
movl $-8192, %eax
andl %esp, %eax
を使用して(8KBのスタックサイズを仮定して)これをつかむことができます。私はここで何が起こっているのか混乱していますか?私はなぜ%esp
の最下位13ビットをマスキングするのが私たちを構造体に連れて行くのかわかりません。私はそれが説明されたら、私は愚かな気がするだろうが、それは私を悩ましています。
ありがとうございました。
私は現在、この本を読んでおり、もっと基本的な質問があります: '-8192'は' 0xffffe000'ですか?負の数値はCPUのレジスタにどのように格納されますか? –