Scuolissima.com - Logo

Linguaggi di Basso Livello

Il computer, come è noto, necessita per il suo funzionamento logico e elettrico di impulsi codificati nei due soli stati che esso è in grado di riconoscere. Ci si esprime quindi con termini livello alto e livello basso, di tensione, associabili ai valori logici 1 e 0. Un codice formato solo da tale tipo di simboli viene chiamato linguaggio macchina.

La lettura di un codice scritto in linguaggio macchina risulta in genere piuttosto difficoltosa. A ciò pone rimedio il linguaggio Assembly, che associa alle singole istruzioni del linguaggio macchina le abbreviazioni delle parole inglesi che indicano il compito da svolgere, costituendone così il codice mnemonico.
Ogni microprocessore possiede un proprio linguaggio a basso livello di tipo Assembly. Ciò evidentemente ostacola la possibilità di poter usare programmi scritti per un dato processore su di un altro dispositivo. per tipi omogenei di microprocessori, costruiti dalla stessa ditta, è tuttavia possibile riconoscere variabili, costanti, e istruzioni comuni. Nello sviluppo dei linguaggi si fa inoltre in modo che quelli usati per un dato processore conservino la loro validità anche per i modelli più evoluti. Ciò non è però sempre valido nel caso contrario. Alla sigla mnemonica fanno eventualmente seguito altre informazioni che indicano alla CPU quali sono i registri, gli indirizzi di memoria o i dati interessati. Poiché normalmente l'istruzione ha il compito di elaborare un qualche elemento prelevato da una determinata sorgente e porre il risultato ottenuto in una certa zona di destinazione, le parti che completano il mnemonico dell'istruzione vengono dette operando destinazione e operando sorgente.
La sigla mnemonica viene anche detta operatore.

operando destinazione <--- operando sorgente

Per caricare un dato in un registro o in memoria si può utilizzare ad esempio la sigla mnemonica MOV (dall'inglese move = muovere) oppure LD (Load, caricare), per sommare ADD, per sottrarre SUB, e così via.
In un istruzione l'operatore deve essere sempre presente, mentre può mancare o l'operando destinazione o l'operando sorgente o entrambi. E' sottinteso comunque che tali elementi vengono resi espliciti nella traduzione in codice macchina dell'istruzione. Per l'esecuzione di un programma scritto in Assembly occorre procedere attraverso le seguenti fasi:
  • stesura;
  • assemblaggio;
  • ottimizzazione;
  • analisi.
Stesura
Per effettuare la stesura del programma è necessario seguire le regole ortografiche previste dal linguaggio legato al particolare processore scelto. Occorrerà quindi verificare la correttezza del programma nel suo insieme, mediante l'operazione detta debug. Per la scrittura materiale del programma Assembly può venire impiegato un comune editor di testi che produca un file in formato ASCII, come ad esempio il NotePad di Windows. Il programma sorgente viene in genere salvato su disco con estensione ASM:

Assemblaggio
Il programma sorgente deve essere tradotto utilizzando un assemblatore, come per esempio Microsoft Assembler o Turbo Assembler della Borland. Si ottiene così un nuovo programma chiamato programma oggetto, con estensione OBJ. Su questo occorre ancora procedere per il collegamento degli indirizzi. E' necessario quindi far ricorso ad uno strumento software detto linker, come per esempio Link.exe o Tlink.exe, che risolva appunto tale tipo di problemi. Il risultato dell'operazione è un file con estensione EXE, direttamente eseguibile. 

Ottimizzazione
Una volta assemblato il programma è pronto per l'esecuzione. Il fatto che il programma risulti in grado di funzionare non garantisce tuttavia risultati sempre accettabili. La fase di ottimizzazione, eseguita con il supporto di appositi strumenti software, serve ad individuare le istruzioni troppo elaborate e a procedere alla loro semplificazione ottenendo tempi più rapidi di esecuzione.

Analisi
Per una riuscita pienamente soddisfacente è a volte necessaria un'ulteriore fase di verifica, chiamata analisi di esecuzione. Essa consiste nell'individuare, tramite un programma detto profiler, la funzionalità degli algoritmi, i tempi di esecuzione e di ripetizione delle istruzioni, le chiamate a sottoprogrammi, tutto quanto insomma può costituire un rallentamento e una inefficiente gestione delle risorse del sistema. A questo punto il programma è finalmente pronto per eseguire i compiti assegnati con la necessaria efficacia.




🧞 Continua a leggere su Scuolissima.com
Cerca appunti o informazioni su uno specifico argomento. Il nostro genio li troverà per te.




© Scuolissima.com - appunti di scuola online! © 2012 - 2024, diritti riservati di Andrea Sapuppo
P. IVA 05219230876

Policy Privacy - Cambia Impostazioni Cookies