Ready64 Forum
Commodore 64 => Aiuto & Domande => Topic aperto da: Hal9000 - 21 Novembre 2019, 17:27:56
-
https://i.imgur.com/3VROY4I.png (https://i.imgur.com/3VROY4I.png)
Salve, sul libro Programmazione del 6502 è riportato un esempio di moltiplicazione, dopo l'ultima iterazione del ciclo, viene eseguita comunque un'operazione di scorrimento e rotazione che restano inutilizzate, volevo provare a modificare la logica del codice cercando di risparmiare qualche istruzione. Potete dirmi se la versione modificata nell'immagine è corretta? ???
thx :ciauz:
-
Per cortesia verso gli altri frequentatori, non utilizzare immagini quando non strettamente necessario: per riportare del codice, usa i tag {code}...{/code} (usa le quadre anziché le graffe). In questo modo resterà traccia delle tue domande sul forum e sarà possibile fare copia e incolla.
-
A un'occhiata veloce le due versioni del programma dovrebbero essere equivalenti, nella seconda ti risparmi di preparare il moltiplicando per una somma parziale che non avverrà.
Se ti va prova a ottimizzare ulteriormente la routine usando meno cicli.
-
Lo scopo di eseguire l'ultima iterazione del ciclo (non eseguito nella seconda versione) è quello di preservare il valore del fattore in una locazione di memoria. Inoltre la seconda versione ha anche il difetto di non essere rilocabile senza modifiche, data la presenza di una JMP. Questi sono i due motivi per cui l'autore originale non ha proposto queste modifiche. Sul libro è riportata anche una versione ottimizzata dell'algoritmo, poche pagine dopo.
-
Grazie ad entrambi :ciauz: