Articles of x86

Portage du code C ++ 32 bits à 64 bits – en vaut-il la peine? Pourquoi?

Je suis conscient de certains avantages évidents de l’architecture x64 (adresses RAM adressables plus élevées, etc.) mais: Que se passe-t-il si mon programme n’a pas vraiment besoin d’être exécuté en mode 64 bits natif? Devrais-je le porter quand même? Existe-t-il des délais prévisibles pour mettre fin à la prise en charge 32 bits? Mon application […]

Appel de code 32 bits depuis un processus 64 bits

J’ai une application que nous essayons de migrer à 64 bits à partir de 32 bits. C’est .NET, compilé à l’aide des indicateurs x64. Cependant, nous avons un grand nombre de DLL écrites en FORTRAN 90 compilées pour 32 bits. Les fonctions dans les DLL FORTRAN sont assez simples: vous mettez des données, vous extrayez […]

Comment construire i686-linux-android-gfortran pour android-ndk8b (x86 arch Android)?

J’ai essayé de construire i686-linux-android-gfortran en utilisant build-gcc.sh après (c’est pour androdindk-7b) mais j’ai une erreur à propos de link.h. J’ai ajouté link.h d’ ici , mais cela donne encore plus d’erreurs. Quelqu’un a-t-il essayé d’activer i686-linux-android-gfortran pour Android x86?

Erreur étrange MSC 8.0: «La valeur d’ESP n’a pas été correctement enregistrée lors d’un appel de fonction…»

Nous avons récemment tenté de diviser certains de nos projets Visual Studio en bibliothèques, et tout semblait comstackr et construire dans un projet de test avec l’un des projets de bibliothèque en tant que dépendance. Cependant, tenter d’exécuter l’application nous a donné le message d’erreur d’exécution ci-dessous: Échec du contrôle d’exécution # 0 – La […]

Diviser et obtenir le rest en même temps?

Apparemment, x86 (et probablement beaucoup d’autres jeux d’instructions) place le quotient et le rest d’une opération de division dans des registres distincts. Maintenant, nous pouvons probablement faire confiance aux compilateurs pour optimiser un code tel que celui-ci pour utiliser un seul appel à diviser: ( x / 6 ) ( x % 6 ) Et […]

Impossible de modifier et de continuer lors de l’utilisation de Visual Studio 2010 sur un ordinateur 64 bits, l’application cible x86

J’ai des problèmes avec Edit et Continue lorsque vous utilisez Visual Studio 2010 sur un ordinateur Windows 7 64 bits. J’ai assuré ce qui suit Modifier et continuer est activé sous Outils> Options> Débogage> Modifier et continuer Ma plate-forme de solution est définie sur x86 La configuration de ma solution est définie sur Déboguer Tous […]

Quel est le but de l’instruction «PAUSE» dans x86?

J’essaie de créer une version muette d’un verrou de rotation. En parcourant le Web, je suis tombé sur une instruction d’assemblage appelée “PAUSE” dans x86, qui permet d’indiquer à un processeur qu’un spin-lock est en cours d’exécution sur ce processeur. Le manuel d’Intel et d’autres informations disponibles indiquent que Le processeur utilise cet indice pour […]

Comment écrire du code auto-modifiable dans un assemblage x86

Je cherche à écrire un compilateur JIT pour une machine virtuelle de loisir sur laquelle j’ai travaillé récemment. Je connais un peu le assembly, (je suis principalement un programmeur en C. Je peux lire la plupart des assemblages avec une référence pour les opcodes que je ne comprends pas et écrire des programmes simples) mais […]

Allocation de la stack, remplissage et alignement

J’ai essayé de mieux comprendre comment les compilateurs génèrent du code machine, et plus précisément comment GCC gère la stack. Ce faisant, j’ai écrit des programmes en C simples, les compilant en assembleur et faisant de mon mieux pour comprendre le résultat. Voici un programme simple et le résultat qu’il génère: asmtest.c : void main() […]

Les valeurs booléennes sont 8 bits dans les compilateurs. Les opérations sur eux sont inefficaces?

Je lis le ” Logiciel d’optimisation en C ++ ” d’Agner Fog (spécifique aux processeurs x86 pour Intel, AMD et VIA) et indique à la page 34 Les variables booléennes sont stockées sous forme d’entiers à 8 bits avec la valeur 0 pour false et 1 pour true. Les variables booléennes sont surdéterminées dans le […]