Articles of x86

Enhanced REP MOVSB ​​pour memcpy

Je souhaiterais utiliser le protocole REP MOVSB ​​amélioré (ERMSB) pour obtenir une bande passante élevée pour un memcpy personnalisé. ERMSB a été introduit avec la microarchitecture Ivy Bridge. Reportez-vous à la section «Fonctionnement amélioré de REP MOVSB ​​et STOSB (ERMSB)» dans le manuel d’optimisation Intel si vous ne connaissez pas la définition de l’ERMSB. La […]

Pour apprendre l’assemblage – devrais-je commencer avec 32 bits ou 64 bits?

Je veux vraiment apprendre le assembly. Je suis plutôt bon en c / c ++, mais je veux mieux comprendre ce qui se passe à un niveau inférieur. Je me rends compte que des questions liées à l’assemblée ont déjà été posées, mais je cherche simplement une orientation particulière à ma situation: Je suis sous […]

Comment faites-vous un assembleur?

Je voudrais faire un simple assembleur x86. Je me demande s’il existe des tutoriels pour créer votre propre assembleur. Ou s’il y a un simple assembleur que je pourrais étudier. Aussi, je me demande quels outils sont utilisés pour regarder et gérer les binarys / hexs des programmes.

x86 Assembly sur un Mac

Est-ce que quelqu’un connaît de bons outils (je cherche des IDE) pour écrire l’assemblage sur le Mac. Xcode est un peu lourd pour moi. En outre, sur les Mac Intel, puis-je utiliser asm x86 générique? Ou existe-t-il un jeu d’instructions modifié? Toute information sur post Intel. En outre: je sais que sur Windows, asm peut […]

Que signifient les parenthèses dans x86 asm?

Vu le code suivant: L1 db “word”, 0 mov al, [L1] mov eax, L1 Que représentent les parenthèses ([L1])?

Quelle taille de variable utiliser (db, dw, dd) avec l’assemblage x86?

Je suis un débutant à l’assemblage et je ne sais pas ce que tous les db, dw, dd, les choses signifient. J’ai essayé d’écrire ce petit script qui fait 1 + 1, le stocke dans une variable et affiche ensuite le résultat. Voici mon code jusqu’ici: .386 .model flat, stdcall option casemap :none include \masm32\include\windows.inc […]

Comment générer du code assembleur avec clang dans la syntaxe Intel?

Comme le montre cette question , avec g ++, je peux faire g++ -S -masm=intel test.cpp . Aussi, avec clang, je peux faire clang++ -S test.cpp , mais -masm=intel n’est pas supporté par clang ( warning argument unused during compilation: -masm=intel ). Comment puis-je obtenir la syntaxe intel avec clang?

Puis-je utiliser la syntaxe Intel de l’assemblage x86 avec GCC?

Je veux écrire un petit programme de bas niveau. Pour certaines parties, je devrai utiliser le langage d’assemblage, mais le rest du code sera écrit en C / C ++. Donc, si je vais utiliser GCC pour mélanger C / C ++ avec du code assembleur, dois-je utiliser la syntaxe AT & T ou puis-je […]

Le moyen le plus rapide de calculer un nombre entier de 128 bits modulo un entier de 64 bits

J’ai un entier non signé de 128 bits A et un entier non signé de 64 bits. B. Quel est le moyen le plus rapide de calculer A % B – le rest (64 bits) de la division de A par B? Je cherche à le faire en langage C ou assembleur, mais je dois […]

Qu’est-ce que le registre% eiz?

Dans le code d’assembly suivant que j’ai vidé avec objdump : lea 0x0(%esi,%eiz,1),%esi Qu’est-ce que le registre %eiz ? Que signifie le code précédent?