Sezione![]() |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A001 3/9 [7 di 157] |
|
|
||
Gestione Caratteri - Stampa di un solo carattere | ||
Analisi del Codice [2 di 3] - Parte iniziale comune ad ogni Sorgente (Una Tantum) |
|
![]() | Vediamo come si devono iniziare i sorgenti Assembly; sebbene non sia una regola scritta la tecnica descritta in questa pagina è una prassi riconosciuta da tutti i programmatori e vale per qualunque altro sorgente di questo Sito... |
|
![]() | Te la propongo Una Tantum in questo primo esercizio, dandola per commentata nei prossimi; per questo leggi con attenzione e memorizza mentalmente ogni commento: |
|
|
![]() |
Esercizio![]() ![]() ![]() |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
![]() |
![]() |
![]() |
|
![]() | Dopo le direttive SEGMENT, ASSUME e ORG, richieste dall'assemblatore, la prima istruzione in assoluto (INIZIO: JMP Es0001) è un salto incondizionato. |
|
![]() | Questa istruzione è posta volutamente all'inizio di ogni programma: si tratta di una tecnica ben precisa che consente di saltare l'area destinata ai dati del programma (destinata ad ospitare la definizione delle variabili e dei testi) e le eventuali procedure interne del programma, puntando direttamente la prima istruzione della parte principale (MAIN PROGRAM) del sorgente assembly. |
|
![]() | Con questa tecnica ogni locazione destinata ad accogliere i dati e le variabili del programma è certamente appartenente al segmento di codice (invece che al segmento dati, come potrebbe essere naturale pensare), e come tale può essere puntata con il segment override CS:, garantendo di essere rinvenuta anche in situazioni a rischio (.. ne riparleremo..). |
|
![]() | Il salto JMP Es0001 è quindi necessario per evitare al processore il tentativo di eseguire i bytes di dato come fossero codici operativi, con evidente immediato crash. |
|
![]() | Poichè questo programma non definisce né variabili né procedure, l'istruzione JMP Es0001 è, in questo caso, del tutto inutile e può essere cancellata, lasciando però l'etichetta INIZIO:, necessaria al compilatore per localizzare la prima istruzione da compilare, in coppia con quella presente nell'ultima riga (END INIZIO) che chiude sempre il programma sorgente |
|
![]() | Nella pagina seguente analizzeremo il programma vero e proprio, quello che realizzerà il compito che ci siamo prefissi. |
|
![]() |
Palestra Apprendisti |
![]() |
Esercizio n° A001 3/9 |
![]() |
![]() |
![]() |
||
7 di 157 |
|
|
|
Home
![]() |
|
|||||||
|
Motore Ricerca |
|