Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori ST626X. Quinta parte 2/4

Corso di programmazione per microcontrollori ST626X

Il file generato deve avere l’estensione “.ASM” e deve contenere oltre alle istruzioni anche le pseudoistruzioni o direttive assembler (ovvero i comandi rivolti all’assemblatore) necessari alla nostra applicazione. Rammentiamo che è buona norma commentare ogni riga di comando onde rendere più comprensibile il listato; allo scopo, usiamo il simbolo “;” per separare il comando dai commenti.

Iniziamo dunque l’analisi del listato con i primi due comandi rappresentati, nel nostro caso, da due pseudoistruzioni: la “.vers” e la “.romsize”.

st626x_hardware_reset

La prima dice all’assemblatore a quale modello di micro è rivolto il programma, la seconda informa l’assemblatore sulla lunghezza della memoria programma del micro in Kbyte, ad esempio: 2, 4, 8 o 16 Kbyte. Proseguiamo e notiamo la presenza di una serie “.DEF” utilizzati sia per la definizione dei registri che per la definizione delle celle RAM. Il comando “.DEF”, infatti, è una direttiva usata per assegnare una sigla mnemonica, e quindi facilmente memorizzabile dal programmatore, ad una locazione di memoria dati (Data Definition in Data Space). Sappiamo, ad esempio, che il software comunica con le risorse del micro mediante i “registri”, ovvero attraverso particolari spazi di memoria programma appartenenti a determinate locazioni. Quindi, per lavorare con il registro A (accumulatore) dobbiamo utilizzare il numero esadecimale FF che ne identifica la locazione, e per trasferire, ad esempio, il numero 10 nell’accumulatore dovremo scrivere: LDI 0FFH,#10.

reset_st626x

Al contrario, se associamo prima (con la pseudoistruzione “.DEF”) alla locazione FF hex la lettera A possiamo scrivere, molto più semplicemente, LDI A,#10.

Sarà poi premura dell’assemblatore sostituire alla lettera A il corretto indirizzo. Lo stesso discorso appena fatto per i registri vale per le locazioni RAM, anziché invocare queste celle con un numero è preferibile utilizzare una sigla alfanumerica, la quale risulta più facilmente memorizzabile. Abbiamo parlato di memoria RAM che nei microcontrollori ST626X è composta da ben 128 byte, dalla locazione 84 hex alla BF hex. Vediamo dunque quali sono le celle RAM usate nella nostra applicazione, per la precisione quattro, definite dalle sigle: “CDRPA”, “CDRPB”, “CDRPC” e “STATO”.

st626x_valori_reset

Vedremo in seguito lo scopo delle prime tre celle, mentre spieghiamo subito il significato di “STATO” che viene usato per la memorizzazione temporanea della condizione dei led LD1 e LD2. Usiamo solo due bit del byte STATO il numero 1 per il led LD1 ed il numero 2 per il led LD2. Proseguiamo nell’analisi del nostro listato e troviamo un’altra direttiva assembler: la “.ORG”, usata per assegnare all’istruzione immediatamente successiva una locazione di memoria programma.

Nel caso dei microcontrollori ST626X la prima locazione di memoria programma utilizzabile è la 80 hex, perciò in quell’indirizzo andremo a memorizzare la prima istruzione. Tutte le altre istruzioni presenti nel listato verranno allocate, nella memoria programma, esattamente una dopo l’altra così come sono scritte finché l’assemblatore non incontrerà una ulteriore direttiva “.ORG”. Nel nostro listato abbiamo utilizzato sette direttive “.ORG”, la prima per allocare correttamente il programma partendo dal primo spazio disponibile, le altre sei per memorizzare delle istruzioni nei corretti indirizzi dei “vettori”.

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 5 utenti e 45 visitatori collegati.

Ultimi Commenti