dal 2015 - visita n. 1019
Basi
Basi

 

Il linguaggio macchina


Quasi sempre il linguaggio di programmazione mnemonico o linguaggio macchina o assembly costituisce un punto di arrivo, non necessariamente obbligato, per il programmatore evoluto. Questo paradossalmente potrebbe costituire un ostacolo ad un primo approccio alla programmazione in mnemonico, in quanto si è ormai abituati alla disponibilità di tutto un insieme di strutture, tipiche dei linguaggi evoluti, che consentono all'utente di dedicare la gran parte delle proprie energie, com'è giusto che sia, alla soluzione del problema senza la necessità di sapere come in effetti il processore e le strutture ad esso collegate risolvano molti dei passaggi intermedi.

Generalmente, dato un problema, se ne ricava la soluzione per scomposizioni successive in sottoproblemi fino a quando ciascuno di questi sottoproblemi non costituisca di fatto una delle strutture di base del linguaggio utilizzato per rappresentare la soluzione stessa. Il passaggio da un linguaggio evoluto ad uno mnemonico comporta, in primo luogo, una ulteriore scomposizione dei sottoproblemi, in quanto le strutture di base offerte dal linguaggio assembly sono più elementari. Dovendo, ad esempio, emettere un messaggio sul video (dispositivo di uscita standard in modalità testo) con un linguaggio evoluto si risolve il problema scrivendo semplicemente una frase del tipo:

Write ('Messaggio')

con un linguaggio assembly il problema può essere risolto o conoscendo i dettagli costruttivi della macchina o collegandosi con qualcuno dei sottoprogrammi, appartenenti al Sistema Operativo oppure alla dotazione di base della macchina (BIOS), che risolvono il problema; in ogni caso si va incontro ad almeno due tipi di inconvenienti:

Ma allora, perchè programmare in linguaggio macchina? La risposta dipende, anche, dal punto di vista del programmatore, ecco alcuni motivi che possono essere plausibili:

Come si vede, non mancano le motivazioni per utilizzare, anche se in modo parziale, il linguaggio assembly nei propri programmi, infatti dall'analisi dei punti precedenti emerge certamente una costante: esistono classi di operazioni che vengono gestite in modo poco efficiente dai linguaggi evoluti, l'assembly colma queste carenze. Esiste comunque un quarto motivo per avvicinarsi all'assembly che prescinde da considerazioni utilitaristiche:

In conclusione vogliamo ricordare che lavorare in linguaggio assembly significa scomporre il problema originario in sottoproblemi più elementari rispetto a quanto non si faccia con un linguaggio evoluto. Tipicamente, in assembly, le elaborazioni di base consistono in:

ed è soltanto tramite queste semplici funzioni che si può confezionare l'algoritmo risolutivo di un particolare problema; e sono ancora soltanto queste semplici funzioni che consentono di creare le strutture più complesse disponibili con i linguaggi evoluti.



Asm86
Il Linguaggio Macchina
La modalitÓ Reale
La ModalitÓ Protetta
Masm32a



Quanto pi¨ una persona Ŕ intelligente, tanto meno diffida dell'assurdo.
Conrad

Valid CSS!
pagina generata in 0.001 secondi