2016-11-16 1 views
0

Je suis à peu près nouveau au concept de réunion, a voulu savoir comment ou où dois-je pencherai pour obtenir peu de choses faitComment modifier l'assemblage pour obtenir plus de références?

 1)modify the code above to handle vectors with 96 elements. 
    2)How can i know the data reference generated. 
    3)How can i know the instruction reference generated 

le vecteur Y = a * X + Y. vecteurs X et Y contiennent 96 doubles flotteurs chacun et sont stockés aux adresses Rx et Ry, respectivement. Un double flotteur prend 8 octets (64 bits). En supposant que les registres peuvent contenir des 64 bits et que le processeur peut charger/stocker un double flotteur en générant une seule adresse (référence)

L.D F0, a 
    ADDI R4, Rx, #512 : last address to load 

Loop: L.D F2, 0(Rx)   : load X(i) 
     MUL.D F2, F2, F0   : a x X(i) 
     L.D F4, 0(Ry)   :load Y(i) 
     ADD.D F4, F4, F2   : a x X(i) + Y(i) 
     S.D F4, 0(Ry)   : store into Y(i) 
     ADDI Rx, Rx, #8  : increment index to X 
     ADDI Ry, Ry, #8   : increment index to Y 
     SUB R20, R4, Rx  : compute bound 
     BNEZ R20, Loop  : check if done 
+3

Salut Smple_V, nous aimerions vous aider mais je suppose que nous n'allons pas à la même école/université. En tant que tel, ce que votre enseignant/professeur entend par * référence d'instruction générée * (et * référence de données *) doit être traduit en quelque chose de compréhensible dans le contexte auto-confiné de la question. Tout simplement: Je ne sais pas ce que vous demandez. –

Répondre

0

Environ 1)

Le code a une « boucle ». L'instruction BNEZ R20, Loop va modifier le flux d'exécution à l'instruction après le libellé Loop:, lorsque R20 n'est pas égal à zéro.

Donc, vous devez d'abord comprendre, comment la valeur de R20 est calculée, et combien de fois la boucle va s'exécuter. Pour vous donner un indice: c'est une belle puissance de deux valeurs près de votre 96 désiré, et le comprendre vous demandera de comprendre comment fonctionne l'arithmétique du pointeur (adresse) et pourquoi l'information sur la taille de l'élément est de 8 octets important.

Ensuite, vous pouvez ajuster une constante dans la source pour la faire boucler 96 fois.