2010-02-02 6 views
2

Fondamentalement, y en a-t-il?Modèles de conception en langage assembleur

Je suis tenté de penser qu'ils existent. Par exemple, un template method peut être implémenté comme une série de "sauts", où la cible d'un saut est spécifiée "de manière externe". Singleton sera juste un emplacement bien connu en mémoire/code, etc.

Je ne suis en aucun cas un expert de l'assemblage, donc ces exemples pourraient s'avérer complètement impossible, mais quand même.

Répondre

12

Le langage d'assemblage est plus à propos des "astuces" que des motifs de conception. Alors que les modèles de conception de haut niveau peuvent encore être pensés et mis en jeu, la plupart des gars de l'assemblage sont plus préoccupés par les cycles d'horloge et d'exploiter des astuces d'instructions.

Par exemple, en x86, il est plus rapide de faire xor eax, eax, que de faire mov eax, 0. Le point que je fais (merci pour les downvotes!) Est qu'avec Assembly Language, vous voulez vous concentrer davantage sur les détails mineurs que sur la grande image de conception. Tout comme vous ne vous concentrez pas sur les détails précis de la vitesse d'exécution dans un langage de haut niveau.

+1

Il n'y a rien de tel que "clr eax" sur x86. Peut-être que vous vouliez dire "mov eax, 0"? – PhiS

+1

Merci Phil, ça fait longtemps que je suis au metal. –

1

Applicable aux modèles de conception OO:

Les gens mettent généralement en œuvre des constructions linguistiques de niveau supérieur comme le polymorphisme d'héritage et de les utiliser comme des blocs de construction pour mettre en œuvre leurs intentions dans les modèles de conception. Mais alors, il est peut-être plus facile de trouver un compilateur c ou C++ pour la plate-forme et d'utiliser les modèles de conception sans avoir à se soucier de l'implémentation de la fonctionnalité oo de base.

+1

Les modèles de conception ne sont pas spécifiques à la POO, btw. –

5

Première définition sur Google: «un motif de conception est une solution générale réutilisable à un problème courant dans la conception de logiciels».

Par cette norme, je dirais qu'ils existent le plus certainement.

La première qui vient à l'esprit est une table de saut.

Questions connexes