In questo esercizio occorre soltanto fare attenzione a predisporre i dati nei registri giusti prima di chiamare il sottoprogramma.

  1. per calcolare b2 dobbiamo introdurre questo dato nei registri D ed E, poiché è in questi registri che il sottoprogramma aspetta i moltiplicandi. Ora sappiamo dalla traccia che E contiene già il dato b, ma D contiene il dato a per cui occorre preliminarmente salvare il contenuto del registro D in qualche altro registro, esclusi i registri A e B usati anch’essi dal sottoprogramma
  2. per calcolare il prodotto a*c, dovremo riusare il sottoprogramma per cui dobbiamo salvare b2 contenuto nel registro A, in un altro registro e poi porre a nel registro D e c nel registro E
  3. ora il registro A contiene il prodotto a*c. Poiché dobbiamo eseguire un’ultima moltiplicazione, occorre salvare questo risultato in D e porre quattro in E

 

  1. COPIA D IN C
  2. COPIA E IN D[1]
  3. CHIAMA MOLTIPLICA
  4. COPIA A IN G[2]
  5. COPIA C IN D[3]
  6. COPIA F IN E[4]
  7. CHIAMA MOLTIPLICA
  8. COPIA A IN D
  9. COPIA 4 IN E[5]
  10. CHIAMA MOLTIPLICA
  11. COPIA A IN D[6]
  12. COPIA G IN A
  13. SOTTRAI A,D

Foglio excel simulazione

 

 

 

 



[1] per calcolare b2 dobbiamo introdurre questo dato nei registri D ed E, poiché è in questi registri che il sottoprogramma aspetta i moltiplicandi. Ora sappiamo dalla traccia che E contiene già il dato b, ma D contiene il dato a per cui occorre preliminarmente salvare il contenuto del registro D in qualche altro registro, esclusi i registri A e B usati anch’essi dal sottoprogramma

 

[2] per calcolare il prodotto a*c, dovremo riusare il sottoprogramma per cui dobbiamo salvare b2 contenuto nel registro A, in un altro registro e poi porre a nel registro D e c nel registro E

 

[3] il dato a si trovava originariamente in D, ma lo abbiamo spostato all’inizio in C

[4] sposto il dato c nel registro E

[5] ora il registro A contiene il prodotto a*c. Poiché dobbiamo eseguire un’ultima moltiplicazione, occorre salvare questo risultato in D e porre quattro in E

 

[6] dopo l’ultima chiamata del sottoprogramma A contiene il prodotto 4ac, mentre G contiene b2. Ora occorrerebbe sottrarre b2-4ac, ma in genere in un microprocessore l’accumulatore deve essere il primo operando della sottrazione, perciò facciamo questo scambio fra registri