Come ottimizzare il codice assembler per i PICmicro
È noto che nel linguaggio assembler per PIC vi sono alcune istruzioni che prevedono un bit di destinazione: a seconda del valore di tale bit il risultato dell’operazione verrà posto nel registro accumulatore W o nel registro sorgente coinvolto nell’operazione. Si supponga ad esempio di voler sommare il contenuto di due registri A e B quindi posizionare il risultato nel registro A. Un primo modo di effettuare questa operazione è quello riportato nel listato 1, ovvero spostare in W il contenuto del registro A, effettuare la somma con il registro B posizionando il risultato in W, quindi spostare il risultato da W ad A. L’operazione viene quindi eseguita con tre istruzioni.
Utilizzando il bit di destinazione con l’istruzione ADDWF è possibile risparmiare una istruzione utilizzando il codice riportato nel listato 2.
movf A,W ;sposta il contenuto di A nell’accumulatore W addwf B,W ;somma a W il contenuto di B (risultato in W) movwf A ;sposta in A il contenuto di W
Listato 1 |
movf B,W ;sposta il contenuto di B nell’accumulatore W addwf A,F ;somma a W il contenuto di A (risultato in A)
Listato 2 |

Assembly, non Assembler.
Cavolo almeno le basi
Ne abbiamo già discusso ampiamente in passato. Polemico come al solito eh?
È una caratteristica che mi contraddistingue 🙂
Scusa ma quindi ci sono due scuole di pensiero in merito ?
Lo so, per questo ti vogliamo bene 🙂
Riguardo alla diatriba assembler/assembly te la riassumo così: gli informatici ed i programmatori ad alto livello preferiscono il termine ASSEMBLY, mentre i progettisti elettronici e quindi i programmatori a basso livello in genere utilizzano ASSEMBLER.
Ovviamente io sto con i secondi 😉
poi nelle conferenze congiunte si parla solo di assembler 🙂
In molti libri vengono usati termini assembler o assembly in maniera correlata. Classici libri di “Calcolatori Elettronici” per l’università parlano di Assembler per esempio, così come il famoso libro “Assembler language programming for IBM”, ma anche il libro “The art of assembly”. Il linguaggio assembly o assembler è sempre riferito al low-level programming language. Ti posso dire che parlando con alcuni tecnici australiani ad Adelaide all’università Dip. Fisica, il termine assembler era preferito ad assembly, ma quando parlavamo ci si capiva cosa volevamo dire. Al Caltech in USA, si parla di assembler language, così come alle conferenze in inglese, più semplice ed immediato. In Italia gli ingegneri dell’università usano spesso il termine Assembler.
Grazie della panoramica, io continuerò ad usare Assembly, proprio per distinguerlo dall’assemblatore.
Ora leggo l’articolo 😉
La penso come te.
Confondere il compilatore col linguaggio che compila è e resterà sempre un errore.
Se anche se i tecnici lo fanno ciò NON implica che sia corretto.
E’ naturalmente un dettaglio insignificante: capisco bene che chi ci lavora sa di che si parla. E’ un emblema però di come i tempi siano cambiati. All’esame di calcolatori al politecnico di Torino, tanti anni fa, avrebbe significato se non la bocciatura, un basso voto di libretto. Ora scopro che per gli australiani tecnici di oggi la confusione è un must..
🙂