Différence entre "ADD register to register" et "ADD register to immediate"
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Différence entre "ADD register to register" et "ADD register to immediate"



  1. #1
    ahilali

    Différence entre "ADD register to register" et "ADD register to immediate"


    ------

    bonjour à toutes et à tous;
    je voudrais savoir c'est quoi la différence entre les instruction assembleur "add register to register" et "add register to immediate" en terme de performance et pourquoi??
    Merci d'avance

    -----

  2. #2
    PA5CAL

    Re : Différence entre "ADD register to register" et "ADD register to immediate"

    Bonjour

    On pourrait dire a priori que l'addition immédiate requiert en plus un octet de stockage en mémoire et l'exécution d'un cycle de fetch supplémentaire pour aller le lire, mais... les évidences sont parfois trompeuses.

    Je prendrai deux exemples :

    • Sur un Z80 :

    - l'instruction « ADD A,r » (réalisant A ← A+r , où A est l'accumulateur et r est un registre interne), occupe 1 octet en mémoire, et est exécutée en 1 cycle machine / 4 cycles d'horloge ;

    - l'instruction « ADD A,n » (réalisant A ← A+n , où A est l'accumulateur et n est une valeur immédiate sur 8 bits), occupe 2 octets en mémoire, et est exécutée en 2 cycles machine / 7 cycles d'horloge.

    L'addition d'une valeur immédiate occupe plus de place en mémoire et prend plus de temps à l'exécution.


    • Sur un ATmega8 :

    - l'instruction « ADD Rd,Rr » (réalisant RdRd+Rr , où Rd et Rr sont deux des 32 premiers registres internes, occupe 1 mot en mémoire (2 octets), et est exécutée en 1 cycle d'horloge ;

    - il n'existe pas d'instruction d'addition immédiate sur un registre 8 bits, mais l'instruction « ADIW Rd,K » (réalisant Rd+1:RdRd+1:Rd+K , où K est une valeur immédiate sur 8 bits), occupe 1 mot en mémoire (2 octets), et est exécutée en 2 cycles d'horloge ;

    - par ailleurs, les instructions de chargement immédiat et d'addition avec retenue sur des registres 8 bits occupent 1 mot en mémoire (2 octets), et sont exécutées en 1 cycle d'horloge.

    L'addition d'une valeur immédiate de type valeur 8 bits + registre 16 bits occupe moins de place en mémoire et prendre autant de temps à l'exécution que l'addition équivalente entre registres.


    Bref, la conclusion, c'est qu'on ne peut parler de performances qu'en définissant l'importance des critères de comparaison (vitesse d'exécution, compacité du code), en indiquant le matériel utilisé, et en précisant la fonction logicielle à réaliser.
    Dernière modification par PA5CAL ; 26/08/2012 à 13h55.

  3. #3
    ahilali

    Re : Différence entre "ADD register to register" et "ADD register to immediate"

    Merci pa5cal pour votre réponse;
    en fait je travail sur l'estimation de la consommation de puissance d'un processeur RISC 32-bits et après les simulations que j'ai effectué j'ai obtenu des résultats qui me montrent par exemple que :effectuer une instruction de type "ADD, r, r" consomme plus de puissance que pour une instruction de type "ADD, r, i" donc je me demande en quoi le fait de changer la façon d'exécution de cette instruction peut influencer la consommation de puissance, est ce que ça demande plus d'opération...

  4. #4
    PA5CAL

    Re : Différence entre "ADD register to register" et "ADD register to immediate"

    Que la consommation de puissance soit différente n'est pas une surprise, et qu'elle se fasse dans ce sens-là peut aussi s'expliquer (temps d'exécution plus long, consommation du circuit d'adressage extérieur non comptabilisé, ...).

    Mais comme je le suggérais, on ne peut pas faire de comparaison en restant dans le vague. Il faut connaître l'architecture, savoir quels circuits internes sont sollicités, évaluer leur consommation électrique, etc. . Sinon la discussion risque d'être plutôt stérile, et de tourner en exercice de divination.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Différence entre "vrai" et "valide"
    Par mh34 dans le forum Epistémologie et Logique (archives)
    Réponses: 117
    Dernier message: 28/01/2017, 08h57
  2. Différence entre "translation circulaire" et "rotaion"
    Par invitee38d9e00 dans le forum Physique
    Réponses: 2
    Dernier message: 16/05/2011, 19h27
  3. Différence entre Licence"Bio cellulaire et physio" et "bioch et biomol"
    Par invitea852e8c5 dans le forum Orientation après le BAC
    Réponses: 5
    Dernier message: 22/09/2009, 08h53
  4. Aide pour différence entre "eutrombidium rostratus" et "trombidium autumnalis"
    Par invite7083421c dans le forum Identification des espèces animales ou végétales
    Réponses: 2
    Dernier message: 25/02/2009, 23h55
  5. Différence entre "explosion" et "implosion"
    Par invite234d9cdb dans le forum Physique
    Réponses: 6
    Dernier message: 18/11/2005, 19h16
Découvrez nos comparatifs produits sur l'informatique et les technologies.