Apprendre le bon assembleur
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 - 12 juin 2024 à 20:05
- Apprendre le bon assembleur
- Application pour apprendre à coder - Guide
- Apprendre à lire le coran en français pdf - Télécharger - Histoire & Religion
- Apprendre le solfège piano - Télécharger - Création musicale
- Coran en français - Télécharger - Histoire & Religion
- Télécharger 1000 mots pour apprendre à lire gratuit - Télécharger - Éducatifs
2 réponses
J'ai également déjà programmé en assembleur dans le passé.
Si je peux me permettre quelques remarques:
+ Sais-tu que le compilateur C peut optimiser son code avec l'option -O3 (par exemple).
J'ai souvent vu des gains de performance remarquables seulement en utilisant cette option.
+ Il peut être très difficile de maintenir du code mixte C / assembleur.
J'utilise C en mode de commande et non avec un IDE. Il y a l'option -S pour générer du code assembleur qui pourra t'aider.
+ Est-ce que ton algorithme est optimisé? Le meilleur code ne viendra pas à bout du pire algorithme.
5 juin 2024 à 15:42
bonjour,
moi je partirais de ceci: https://learn.microsoft.com/fr-ch/cpp/assembler/masm/masm-for-x64-ml64-exe?view=msvc-170
6 juin 2024 à 18:41
Merci de ta réponse. J'ai commencé à regarder ce que le lien que tu m'as envoyé me dit. Je ne suis pas sûr d'avoir compris, mais il me semble que pour avoir accès à l'assembleur, il faut le préciser au moment de l'installation de Visual Studio. Et il y a longtemps que j'ai déjà installé Visual Studio, sans rien demander de plus ; j'espère qu'il n'est pas trop tard.
C'est encourageant ! Mais bien sûr, comme je l'ai dit dans ma question, je ne connais rien à l'assembleur en question, rien sur les instructions, rien sur les registres, rien du tout. Donc, lorsque j'aurai fait le nécessaire pour avoir accès à l'assembleur, il me faudra trouver un bouquin qui m'explique comment l'utiliser. Aurais-tu une idée ?
Je vais étudier tout cela.
Merci encore.
6 juin 2024 à 20:55
12 juin 2024 à 18:26
J'ai jeté un coup d'œil à ce livre et ça m'intéresse, mais j'ai une question. Il me faudra un logiciel pour lire les programmes et préparer des exécutables. Comment faire ? Et aussi, comment faire pour qu'un programme en C fasse appel à une routine codée en assembleur ?
Je pense que ce sont des questions bêtes, mais je suis vraiment débutant en la matière et je pose des questions de base...
12 juin 2024 à 20:05
As-tu lu et compris les informations suggérées le 5 juin 2024 à 15h42?
6 juin 2024 à 19:01
"+ Sais-tu que le compilateur C peut optimiser son code avec l'option -O3 (par exemple)."
Non ! Je le supposais mais je ne le savais pas. Et je ne sais pas comment utiliser cette option lorsque l'on compile à partir de l'IDE. Moi je clique sur "générer" et l'on ne propose pas d'option...Sais-tu comment faire ?
"Il y a l'option -S pour générer du code assembleur qui pourra t'aider."
Plus précisément, que fait cette option ?
"+ Est-ce que ton algorithme est optimisé? Le meilleur code ne viendra pas à bout du pire algorithme."
Oui, je sais cela. Je ne suis pas certain que coder en assembleur va accélérer le processus, car C est semble-t-il très proche du langage machine. Mais j'ai envie d'essayer.
Merci pour ta réponse. Comme je l'ai dit à yg_be, avoir accès à l'assembleur est une chose, mais il faut aussi apprendre à coder en assembleur et je cherche de la lecture à ce sujet.
Merci encore
7 juin 2024 à 12:59
Je pense que les options décrites par Pierrot sont pour le compilateur GCC.
Pour celui de Microsoft, les options d'optimisation sont décrites là : https://learn.microsoft.com/en-us/cpp/build/reference/ox-full-optimization?view=msvc-170
(la page indique les options de ligne de commande mais aussi comment fixes les options à partir de l'EDI de Microsoft)
Il y a /O1 pour Minimize Size et /O2 pour Maximize Speed
https://learn.microsoft.com/en-us/cpp/build/reference/o1-o2-minimize-size-maximize-speed?view=msvc-170
Je ne suis pas sûr qu'il existe dans MSVC une option -S équivalente à celle de GCC pour accéder à une version assembleur du code C compilé.