in un programma Assembler

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
Programmazione assembler
Procedure In assembler.
Organizzazione della memoria
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Selezione - approfondimento
PUNTATORI Introduzione
Algoritmi e Programmazione
Anno accademico Il preprocessore del linguaggio C.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Programmazione Procedurale in Linguaggio C++
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Funzioni definite dall’utente
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Algoritmi Politecnico di Milano
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e Puntatori Marco D. Santambrogio – Ver. aggiornata al 18 Marzo 2013.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
I File.
Espressioni condizionali
Istruzioni per il Controllo del Processore
Programmazione Avanzata
Corso di PHP.
Programmazione in Java
4 Tipi di dati & variabili
CALCOLATORI ELETTRONICI II
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
Istruzioni per la Manipolazione dei Bit
Strutture di Controllo
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Tipi di dati elementari
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
Introduzione al linguaggio assembly del microprocessore a parte
C. Gaibisso Programmazione di Calcolatori Lezione XVI Allocazione dinamica della memoria Programmazione di Calcolatori: allocazione dinamica della memoria.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
La gestione delle interruzioni
LdL - LP1 - lez 11 - ver 6 - aa Linguaggi di programmazione I Stringhe (II) Prof. Luigi Di Lascio Lezione 11.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Lezione 3 Struttura lessicale del linguaggio
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Vettori (a una dimensione)
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Procedure e Macro.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Operatori di incremento e decremento
Esercitazione 3 Introduzione allo SPIM Pseudo-Istruzioni
SPIM Esercizi. Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Esercizi.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Vari e semplici programmi.
Transcript della presentazione:

in un programma Assembler Variabili in un programma Assembler

Dichiarazione Una variabile indica una locazione di memoria. In assembler troviamo due tipi di variabili: BYTE e WORD. Dichiarazione: <nome> DB <valore> <nome> DW <valore> Dove: DB significa Define Byte. DW significa Define Word. <nome> è l’identificatore della variabile che è formato da lettere o cifre e deve iniziare con una lettera. è possibile dichiarare variabili senza specificare il nome <valore> è un valore numerico il simbolo "?" significa che la variabile non è inizializzata

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 … L’area di memoria che contiene i dati NON deve essere eseguita come codice: o definire i dati dopo l’ultima istruzione 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)

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

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'

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

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

Costanti Se i valori non devono essere modificati dopo la dichiarazione è possibile utilizzare le costanti. Dichiarazione: <nome> EQU <valore> L’uso è analogo a quello delle variabili.

Indirizzo di una variabile L’istruzione LEA permette di caricare in una variabile l’indirizzo di una variabile. Sintassi: LEA <registro>,<variabile> Esempio: lea dx, messaggio … messaggio db "Saluti$” L’istruzione equivale a: MOV <registro>,offset <variabile>

Visualizzazione di una stringa E’ possibile definire una stringa in memoria e visualizzarla con una sola chiamata a una servizio. L’ultimo carattere deve essere $ (terminatore) Servizio 9 dell’interrupt 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$"