Je suis en train de lire 'Linux Kernel Development' de Robert Love et je ne comprends pas ce que fait ce petit assemblage.développement du noyau linux
Fondamentalement, dans chaque pile de processus, il y a un struct thread_info
qui se trouve à la fin de la pile. Maintenant, sur l'architecture x86, nous pouvons apparemment saisir (en supposant la taille de la pile de 8 Ko) en utilisant l'ensemble suivant
movl $-8192, %eax
andl %esp, %eax
Donc, fondamentalement ANDing le pointeur de la pile par 0xffffe000. Je suis confus quant à ce qui se passe ici? Je ne vois pas pourquoi masquer les 13 bits les moins significatifs de %esp
nous amène à la structure. Je sais que je me sentirai stupide une fois qu'on m'expliquera, mais ça m'énerve.
Merci.
Je suis en train de lire ce livre et j'ai une question encore plus fondamentale: comment savez-vous que '-8192' est' 0xffffe000'? Comment les nombres négatifs sont stockés dans les registres du CPU? –