La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Variabili in un programma Assembler. Dichiarazione Una variabile indica una locazione di memoria. In assembler troviamo due tipi di variabili: BYTE e.

Presentazioni simili


Presentazione sul tema: "Variabili in un programma Assembler. Dichiarazione Una variabile indica una locazione di memoria. In assembler troviamo due tipi di variabili: BYTE e."— Transcript della presentazione:

1 Variabili in un programma Assembler

2 Dichiarazione Una variabile indica una locazione di memoria. In assembler troviamo due tipi di variabili: BYTE e WORD. Dichiarazione: DB DW Dove: DB significa D efine B yte. DW significa D efine W ord. o è lidentificatore della variabile che è formato da lettere o cifre e deve iniziare con una lettera. o è possibile dichiarare variabili senza specificare il nome o è un valore numerico o il simbolo "?" significa che la variabile non è inizializzata

3 Esempi var1 DB 0;1 byte con valore 0 var2 DB 41h;1 byte con valore 65 var3 DB A;idem var4 DB ?;1 byte non inizializzato var5 DB 10 DUP(0);10 byte inizializzati a 0 var6 DB ciao;4 byte con i codici ascii … Larea di memoria che contiene i dati NON deve essere eseguita come codice: o o definire i dati dopo lultima istruzione o o mettere una istruzione di salto per non eseguire i dati Nel modello COM area Dati e area Codice sono nello stesso segmento (CS = DS)

4 Esempio 1 ;Esempio di utilizzo variabili ;Visulizza n_cicli asterischi ;dove n_cicli e' una variabile org 100h mov ch,n_cicli ;inizializzazione contatore mov dl,'*' mov ah,2 STAMPA: int 21h ;visualizzo il carattere dec ch ;decremento contatore jnz STAMPA ;torna a stampare se il contatore non è 0 FINE: int 20h ret n_cicli DB 5 ;numero di asterischi da stampare

5 Esempio 2 ;Esempio di utilizzo variabili ;Visulizza n_cicli volte il carattere car ;dove n_cicli e' una variabile e car e' un'altra variabile org 100h mov ch,n_cicli ;inizializzazione contatore mov dl,car mov ah,2 STAMPA: int 21h ;visualizzo il carattere dec ch ;decremento contatore jnz STAMPA ;torna a stampare se il contatore non è 0 FINE: int 20h ret n_cicli DB 5 ;numero di asterischi da stampare car DB 'x'

6 Esempio 3 ;Esempio di utilizzo variabili ;Visulizza n_cicli asterischi ;dove n_cicli e' una variabile org 100h jmp INIZIO n_cicli DB 5 ;numero di asterischi da stampare INIZIO: mov ch,n_cicli ;inizializzazione contatore mov dl,'*' mov ah,2 STAMPA: int 21h ;visualizzo il carattere dec ch ;decremento contatore jnz STAMPA ;torna a stampare se il contatore non è 0 FINE: int 20h ret

7 Variabili e locazioni Lassemblatore converte automaticamente le variabili con il loro indirizzo (offset dellindirizzo) Nei file.COM i registri di segmento CS e DS (Data Segment) sono inizializzati allo stesso valore. Lassebler non è case sensitive (non distingue fra lettere maiuscole e minuscole per i nomi delle variabili) Lemulatore permette di visualizzare una finestra di ispezione variabili

8 Costanti Se i valori non devono essere modificati dopo la dichiarazione è possibile utilizzare le costanti. Dichiarazione: o EQU Luso è analogo a quello delle variabili.

9 Indirizzo di una variabile Listruzione LEA permette di caricare in una variabile lindirizzo di una variabile. Sintassi: o LEA, Esempio: lea dx, messaggio … messaggio db "Saluti$ Listruzione equivale a: o MOV,offset

10 Visualizzazione di una stringa E possibile definire una stringa in memoria e visualizzarla con una sola chiamata a una servizio. Lultimo carattere deve essere $ (terminatore) Servizio 9 dellinterrupt 21 Esempio lea dx, messaggio ; carica in dx l'indirizzo di messaggio mov ah, 9 ; stampa tutto fino al carattere $ int 21h FINE: int 20h ret messaggio db "Saluti$"


Scaricare ppt "Variabili in un programma Assembler. Dichiarazione Una variabile indica una locazione di memoria. In assembler troviamo due tipi di variabili: BYTE e."

Presentazioni simili


Annunci Google