Articles of x86

Comment écrire un désassembleur?

Je suis intéressé à écrire un dissembleur x86 en tant que projet éducatif. La seule vraie ressource que j’ai trouvée est celle de Spiral Space, ” Comment écrire un désassembleur “. Bien que cela donne une belle description de haut niveau des divers composants d’un désassembleur, je suis intéressé par des ressources plus détaillées. J’ai […]

Où est le verrou pour un std :: atomic?

Si une structure de données contient plusieurs éléments, la version atomique de celle-ci ne peut (toujours) pas être verrouillée. On m’a dit que cela est vrai pour les grands types, car le processeur ne peut pas modifier les données de manière atomique sans utiliser une sorte de verrou. par exemple: #include #include struct foo { […]

Que signifie «int 0x80» dans le code assembleur?

Quelqu’un peut-il expliquer ce que le code d’assemblage suivant fait? int 0x80

Différence entre JE / JNE et JZ / JNZ

En code x86, JE et JNE exactement les mêmes que JZ et JNZ ?

Est-ce que cela ne devrait pas se produire un bogue de processeur AMD Fusion?

Mon entreprise a commencé à appeler un certain nombre de clients car notre programme se bloque avec une violation d’access sur leurs systèmes. Le crash se produit dans SQLite 3.6.23.1, que nous livrons dans le cadre de notre application. (Nous livrons une version personnalisée afin d’utiliser les mêmes bibliothèques VC ++ que le rest de […]

A quoi sert le registre “FS” / “GS”?

Donc, je sais ce que les registres suivants et leurs utilisations sont censés être: CS = segment de code (utilisé pour IP) DS = Segment de données (utilisé pour MOV) ES = segment de destination (utilisé pour MOVS, etc.) SS = Segment de stack (utilisé pour SP) Mais à quoi servent les registres suivants? FS […]

CPU Privilege Rings: Pourquoi les anneaux 1 et 2 ne sont-ils pas utilisés?

Quelques questions concernant les privilèges du processeur x86: Pourquoi les anneaux 1 et 2 ne sont-ils pas utilisés par la plupart des systèmes d’exploitation? Est-ce juste pour maintenir la compatibilité du code avec d’autres architectures, ou y a-t-il une meilleure raison? Y a-t-il des systèmes d’exploitation qui utilisent réellement ces anneaux? Ou sont-ils complètement inutilisés?

Est-il possible d’indiquer au prédicteur de twig la probabilité de suivre la twig?

Pour que ce soit clair, je ne vais pas faire de portabilité ici, donc toutes les solutions qui me lient à une certaine boîte sont acceptables. Fondamentalement, j’ai une instruction if qui sera évaluée à 99% sur true, et j’essaie de tester chaque horloge de performance, puis-je émettre une sorte de commande de compilation (en […]

Comment écrire hello world en assembleur sous Windows?

Je voulais écrire quelque chose de fondamental dans l’assemblage sous Windows, j’utilise NASM, mais je ne peux rien faire. Comment écrire et comstackr hello world sans l’aide des fonctions C sous Windows?

Qu’est-ce que “rep; nop; ”signifie en assemblage x86? Est-ce la même chose que l’instruction «pause»?

Qu’est-ce que rep; nop rep; nop signifie? Est-ce la même chose que l’instruction de pause ? Est-ce la même chose que rep nop (sans le point-virgule)? Quelle est la différence avec l’instruction nop simple? Se comporte-t-il différemment sur les processeurs AMD et Intel? (bonus) Où est la documentation officielle pour ces instructions? Motivation pour cette […]