Articles of x86

Quelle est la différence entre MOV et LEA?

J’aimerais savoir quelle est la différence entre ces instructions: MOV AX, [TABLE-ADDR] et LEA AX, [TABLE-ADDR]

Quel est le but de XORing un registre avec lui-même?

xor eax, eax mettra toujours eax à zéro, non? Alors, pourquoi MSVC ++ le met-il parfois dans le code de mon exécutable? Est-ce plus efficace que mov eax, 0 ? 012B1002 in al,dx 012B1003 push ecx int i = 5; 012B1004 mov dword ptr [i],5 return 0; 012B100B xor eax,eax En outre, que signifie faire […]

But des registres ESI et EDI?

Quel est le but réel et l’utilisation des registres EDI & ESI dans l’assembleur? Je sais qu’ils sont utilisés pour des opérations de chaîne pour une chose. Quelqu’un peut-il aussi donner un exemple?

Pourquoi SSE scalaire sqrt (x) est-il plus lent que rsqrt (x) * x?

J’ai étudié quelques-unes de nos mathématiques de base sur un processeur Intel Core Duo et, tout en examinant différentes approches de la racine carrée, j’ai remarqué quelque chose de bizarre: en utilisant les opérations scalaires SSE, il est plus rapide pour obtenir le sqrt, que d’utiliser l’opcode natif sqrt! Je le teste avec une boucle […]

`testl` eax contre eax?

J’essaie de comprendre une certaine assemblée. L’assemblage comme suit, je m’intéresse à la ligne de testl : 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 testl %eax, %eax 000319e7 7407 je 0x000319f0 J’essaie de comprendre ce sharepoint testl entre %eax et %eax ? Je pense que les détails de ce que […]

Fichiers d’en-tête pour insortingnsèques SIMD x86

Quels fichiers d’en-tête fournissent les éléments insortingnsèques pour les différentes extensions de jeu d’instructions SIMD x86 (MMX, SSE, AVX, …)? Il semble impossible de trouver une telle liste en ligne. Corrige moi si je me trompe.

Quelle est la différence entre Trap et Interrupt?

Quelle est la différence entre Trap et Interrupt? Si la terminologie est différente pour différents systèmes, que signifient-ils sur x86?

Qu’est-ce que chaque programmeur devrait savoir sur la mémoire?

Je me demande dans quelle mesure ce que chaque programmeur devrait savoir sur la mémoire d’Ulrich Drepper en 2007 est toujours valide. Aussi je ne pouvais pas trouver une version plus récente que 1.0 ou un errata.

En quoi l’architecture ARM diffère-t-elle de x86?

L’architecture x86 est-elle spécialement conçue pour fonctionner avec un clavier alors qu’ARM s’attend à être mobile? Quelles sont les principales différences entre les deux?

Pourquoi le dépassement d’entier sur x86 avec GCC provoque-t-il une boucle infinie?

Le code suivant entre dans une boucle infinie sur GCC: #include using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i < 0); cout << c << endl; return 0; } Alors, voici le problème: le dépassement d’entier signé est un comportement techniquement indéfini. […]