GCC -S - ASM - Programmation
Marsh Posté le 19-03-2008 à 22:49:34
C'est pour aligner la pile, c'est seulement nécessaire avec certaines instructions SSE je crois. GCC garde toujours la pile alignée par 16, je ne sais pas si ça fait partie de la convention sous Linux ou si c'est un caprice.
Marsh Posté le 19-03-2008 à 23:23:53
OK, sinon je me posais une question qui n'a rien à voir:
Quand il y a des équivalences, par exemple:
Code :
|
Ca a bien le même effet que:
Code :
|
Non ?
En fait ce que je veux dire c'est qu'en ASM quand deux lignes sont équivalentes est-ce que la durée d'execution peut quand même être différente ?
Greg
Marsh Posté le 25-03-2008 à 08:41:17
si le résultat est le même, la manière pour y arriver est différente. Déjà la conversion en hexa produira un code plus compact pour xor
avec les processeurs modernes, il est difficile de prévoir le temps d'exécution d'une instruction.
Marsh Posté le 25-03-2008 à 08:53:14
il surtout ne PAS raisonner instruction par instruction car la latecne de chaque instruction joue. Alors même si le code a l'air moins bon, il va etre meilleur du fait de sa plus grande facilité à passer au travers du/des pipeline
Marsh Posté le 25-03-2008 à 12:29:43
a-t-on intérêt à faire compacte pour faire tenir beaucoup de code dans le cache ou pas ?
j'ai souvent entendu parler du dépliage du code pour en accélérer l'exécution. Si ce dépliage fait déborder le cache n'y -a-t-il pas un risque de ralentissement plus grand qu'une boucle qui ne provoque pas de débordement du cache ?
Marsh Posté le 13-07-2008 à 20:13:22
dap++ a écrit : C'est pour aligner la pile, c'est seulement nécessaire avec certaines instructions SSE je crois. GCC garde toujours la pile alignée par 16, je ne sais pas si ça fait partie de la convention sous Linux ou si c'est un caprice. |
merci pour l'info !
Marsh Posté le 19-03-2008 à 22:11:30
Bonjour !
Lorsque je demande à GCC de générer du code en assembleur je remarque que l'en tête du main contient toujours:
Je ne comprends pas à quoi ça sert, $-16 correspond à 0xfffffff0 je pense, en gros apres être passé par un ANDL $-16
notre cher ESP verra ses 4 derniers bits mis à zéro ... ça sert à quoi ?
Greg