49Fermer51
PolluxLe 21/05/2008 à 01:08
PpHd (./47) :
Au niveau de la compréhension, oui. Au niveau pratique, par contre, avec l'ASM, tu te limites à une génération de CPU. Donc tu dois maintenir ton code à chaque nouvelle génération ce qui peut être lourd. Mais parfois nécessaire pour certains calculs.

Ah mais je suis parfaitement d'accord, et sûrement même plus d'accord avec toi que toi puisque ça fait longtemps que je n'écris pas une ligne d'ASM en dehors des routines critiques hehe
Franchement, l'architecture varie pas tant que çà. Tu as toujours des registres / de la mémoire / des caches / des pipelines / des out of order / des latences / des read / des writes / des add,sub,and... / des mul, div / des shift.

Mais sur 68k y a ni cache ni out of order (donc ni latence), c'est à la fois un avantage parce qu'on voit mieux ce qui se passe et que c'est plus facile d'optimiser et de comprendre les concepts de base (le temps d'exécution d'une boucle sur un processeur moderne est un peu "magique" alors qu'il se compte de tête sans problème sur 68k) et un inconvénient parce que ça ne correspond pas à la réalité des processeurs actuels.


EDIT : hmmf, j'avais zappé les posts après celui de Pphd sad
Kevin Kofler (./49) :
Sinon, j'ai un autre point à rajouter: en C, si on ne fait pas exprès d'écrire du code illisible, on n'a en général pas besoin de commentaires, ou de très peu de commentaires, pour comprendre son code (et en général celui des autres aussi). En assembleur, il est impératif de commenter, sinon on ne comprend vite plus son propre code! (Genre "mais qu'est-ce que j'ai donc mis dans le registre %a3 ici, et c'est quoi 4(%a2,%d7.l)?")

Peut-être aussi que l'illisibilité vient de ces % horribles qui sont éparpillés dans le code ? tongue </troll>
L'allocation de registre est surtout gênante pour la maintenabilité, mais en général si tu appelles tes registres de façon logique et que tu mets éventuellement un commentaire pour dire quel registre contient quoi (l'équivalent des noms de variables en C) ça reste assez lisible...