Guadagna ON-Line

» Home » Hack Box

Il linguaggio Assembler

[ :: 01 :: ] [ :: 02 :: ] [ :: 03 :: ] [ :: 04 :: ] [ :: 05 :: ]

Bisogna innanzitutto ricordare che avrei potuto mettere qualsiasi commento dopo ogni stringa per ricordare quello che fa, ma non l'ho fatto perché comunque devo spiegare stringa per stringa il programmino…..

Allora, le prime tre stringhe riservano lo spazio per lo stack. Lo stack è una parte della memoria riservata per le variabili, ma che non ha indirizzi ben precisi. Per riuscire a capire il funzionamento dello stack, basta pensare ad una pila di piatti. Inserendo il comando "PUSH", si aggiunge un piatto alla pila invece con il comando "POP" se ne toglie uno. Bisogna però ricordare che possiamo utilizzare solo la variabile che occupa il gradino più alto della pila e non una qualsiasi variabile.

Come ho già detto, i punti e virgola (;) servono solo per i commenti, quindi quelle stringhe vuote con un solo punto e virgola, servono solo per tenere un po' più ordinato il programma. Però l'assemblatore non le compilerà e quindi nel programma compilato non risulteranno.

Nel segmento DATA viene assegnato alla variabile Vettore i valori 6,10,20,30,40,50,60.
È proprio in quel segmento che ogni variabile viene assegnata! Poi c'è tutto il prologo standard che come vi ho detto, sarebbe troppo lungo da spiegare, inquanto richiede conoscenze specifiche.

Ma andiamo direttamente al corpo del programma per vedere come si ragiona in Assembler...

Con MOV CX,6 andiamo a mettere nel registro CX il valore 6 che poi sarebbe il primo valore del vettore.
Con MOV SI,0 andiamo ad azzerare l'indice del vettore.
Lo stesso lo si fa con AX tramite la stringa: MOV AX,0.

Nella successiva stringa andiamo a definire una Label, o una etichetta che ci permette di saltare in quel punto del programma tramite il comando LOOP o con un qualsiasi salto.

Con la stringa ADD AX,Vettore[SI] andiamo ad aggiungere al valore 0 del registro AX il valore del primo valore del vettore. Questo è fatto grazie all'indice SI che è settato a zero ed è quindi il primo valore.

Poi dobbiamo quindi andare al secondo valore del Vettore con il comando
INC SI.
Questo comando incrementa il valore dell'indice al secondo valore del vettore.

Abbiamo quindi un LOOP Ciclo che fa ritornare il programma all'aggiunta con ADD.

Avremo quindi un ciclo vero e proprio che si interromperà solo quando i valori del vettore saranno finiti.

Le ultime tre stringhe permettono di chiudere il programma e le procedure.

Ok ragazzi, sono sicuro che qualcosa sia entrata nella vostra testa. Se così non è, purtroppo non so cosa fare :))

Adesso cercate di studiare questo programmino, e quando lo avete capito bene, cercate di fare uno vostro. Un programmino che ad esempio somma gli elementi di 2 vettori.
Lo so che non è semplice e che vi servono altri codici operativi, ma dovete anche capire che l'Assembler è molto difficile ed io non posso scrivere tutto. Adesso tocca a voi. Dovete studiare su qualche libro...

Ricordate comunque che anche se la programmazione in Assembler è difficile, vi permette di accedere a tutte le risorse di un sistema!!!

Quale è lo scopo di un Hacker?
Pensateci su, e capirete l'importanza di questo linguaggio di programmazione...

[ :: 01 :: ] [ :: 02 :: ] [ :: 03 :: ] [ :: 04 :: ] [ :: 05 :: ]


 


[ :: Indice Corso :: ]









     

by 1999-2012 , ADMEDIA multimedia software development, Tutti i diritti riservati.
Per utilizzare il materiale pubblicato su HarrrDito.it è necessario richiedere l'autorizzazione.
Tutti i marchi citati sono copyright dei rispettivi proprietari. - Note Legali -




cod: 2-2.02.11 - 38.107.179.222