Articles of x86

Pourquoi Intel cache-t-il le kernel RISC interne dans ses processeurs?

À partir de Pentium Pro (microarchitecture P6), Intel a repensé ses microprocesseurs et utilisé le kernel interne RISC sous les anciennes instructions CISC. Depuis Pentium Pro, toutes les instructions CISC sont divisées en parties plus petites (uops), puis exécutées par le cœur RISC. Au début, il était clair pour moi qu’Intel avait décidé de cacher […]

Pourquoi les instructions x86-64 sur les registres 32 bits ne représentent-elles pas la partie supérieure du registre 64 bits complet?

Dans la visite x86-64 des manuels Intel , j’ai lu Le fait le plus surprenant est peut-être qu’une instruction telle que MOV EAX, EBX automatiquement à zéro les 32 bits supérieurs du registre RAX . La documentation Intel (3.4.1.1 Registres à usage général en mode 64 bits dans l’architecture de base manuelle) citée à la […]

Quel est le but du registre de pointeur de trame EBP?

Je suis un débutant en langage assembleur et j’ai remarqué que le code x86 émis par les compilateurs gardait généralement le pointeur de trame, même en mode release / optimisé, lorsqu’il pouvait utiliser le registre EBP pour autre chose. Je comprends pourquoi le pointeur de cadre peut rendre le code plus facile à déboguer et […]

System.BadImageFormatException: Impossible de charger le fichier ou l’assembly (à partir de installutil.exe)

J’essaie d’installer un service Windows en utilisant InstallUtil.exe et j’obtiens le message d’erreur System.BadImageFormatException: Impossible de charger le fichier ou l’assembly ‘ {xxx.exe} ‘ ou l’une de ses dépendances. Une tentative de chargement d’un programme avec un format incorrect a été effectuée. Ce qui donne? EDIT: (pas par OP) Message complet extrait de dup obtenant […]

Que signifie «dword ptr»?

Quelqu’un pourrait-il expliquer ce que cela signifie? (Intel Syntax, x86, Windows) and dword ptr [ebp-4], 0

Calculs en virgule flottante contre nombre entier sur matériel moderne

Je fais un travail de performance critique en C ++, et nous utilisons actuellement des calculs entiers pour des problèmes qui sont insortingnsèquement en virgule flottante car “c’est plus rapide”. Cela provoque beaucoup de problèmes ennuyeux et ajoute beaucoup de code ennuyeux. Maintenant, je me souviens avoir lu à quel point les calculs en virgule […]

Le sharepoint test% eax% eax

Duplication possible: x86 Assembly – ‘testl’ eax contre eax? Je suis très novice en matière de programmation en langage d’assemblage et j’essaie actuellement de lire le langage d’assemblage généré à partir d’un fichier binary. J’ai traversé test %eax,%eax ou test %rdi, %rdi , etc. etc. Je suis très confus quant à ce que cela fait. […]

Quelle est la signification des access mémoire «non temporels» dans x86

C’est une question un peu faible. Dans l’assemblage x86, il existe deux instructions SSE: MOVDQA xmmi, m128 et MOVNTDQA xmmi, m128 Le manuel du développeur de logiciel IA-32 dit que le NT dans MOVNTDQA est synonyme de non-temporel , et que sinon, il est identique à MOVDQA. Ma question est la suivante: que signifie non-temporel […]

Quelle est la meilleure façon de définir un registre à zéro dans un assemblage x86: xor, mov ou and?

Toutes les instructions suivantes font la même chose: définissez %eax sur zéro. Quelle est la voie optimale (nécessitant le moins de cycles de la machine)? xorl %eax, %eax mov $0, %eax andl $0, %eax

Pourquoi x86 est-il moche? Pourquoi est-il considéré inférieur par rapport aux autres?

Récemment, j’ai lu des archives SO et rencontré des instructions sur l’architecture x86. Pourquoi avons-nous besoin d’une architecture de processeur différente pour serveur & mini / mainframe & core mixte? dit “L’ architecture PC est un gâchis, tout développeur de système d’exploitation vous le dirait. ” L’apprentissage du langage d’assemblage en vaut-il la peine? ( […]