tbh*_*tbh 9 linux assembly kernel
我目前正在阅读Robert Love的"Linux内核开发",我不明白这个程序集正在做什么.
基本上,在每个进程内核堆栈中,都有一个struct thread_info驻留在堆栈末尾的内核堆栈.现在,在x86架构上,我们可以通过使用以下程序集来抓住这个(假设8KB堆栈大小)
movl $-8192, %eax
andl %esp, %eax
Run Code Online (Sandbox Code Playgroud)
所以基本上通过0xffffe000对堆栈指针进行AND运算.我很困惑这里发生了什么?我不明白为什么掩盖最不重要的13位%esp将我们带入结构体.我知道一旦得到解释我就会感到愚蠢,但这让我烦恼.
谢谢.
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |