Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086)
|
|
- Anna Maria Giordano
- 7 anni fa
- Visualizzazioni
Transcript
1 PROF. CARMELO CALARCO Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086) 1
2 IL LINGUAGGIO ASSEMBLY Il linguaggio assembly è un linguaggio di programmazione a basso livello. Per linguaggi di basso livello si intendono il sottogruppo linguaggi di programmazione orientanti alla macchina, al contrario del linguaggio di programmazione ad alto livello che è orientato all'utente. Un esempio di linguaggio a basso livello è l'assembly. Per programmare in assembly è necessario conoscere la struttura di base di un PC. La struttura più semplice di un computer può essere così schematizzata: Il SYSTEM BUS (parte colorata in giallo) connette le varie componenti del computer. La CPU è il cuore di un computer, esegue tutte le operazioni di calcolo e rappresenta quindi il parametro principale per valutare le prestazioni di un computer. È composta da un unità con funzioni aritmetiche e logiche chiamata ALU (Arithmetic/Logic Unit), da un unità di controllo e temporizzazione chiamata CTU (Control/Timing Unit) e dai registri, piccole memorie che contengono i dati 2
3 da utilizzare nelle operazioni matematico/logiche o di controllo. La RAM è l area di memoria in cui i programmi sono caricati per poi essere mandati in esecuzione. Il processore 8086 ha una serie di registri (14) a 16 bit, è possibile distinguere tra: registri accumulatori, utilizzabili indifferentemente come registri a 16 bit (word) o 8 bit: AX registro accumulatore (diviso in AH / AL). BX registro base, contiene l indirizzo di base di una tabella o di un vettore (diviso in BH / BL). CX registro contatore usato nelle operazioni fra stringhe e nelle iterazioni come registro contatore a sedici bit (diviso in CH / CL). DX registro dati (diviso in DH / DL). Questi registri sono usati normalmente per i seguenti scopi: - operazioni aritmetiche ad otto e a sedici bit; - operazioni logiche; - trasferimento dei dati. Registri indice, contengono l indirizzo per raggiungere le locazioni di memoria all interno del segmento dati, sono due: SI - registro indice sorgente. DI registro indice destinazione. 3
4 Registri puntatore, (o Index o Offset) sono generalmente utilizzati come puntatori a dati in memoria (contengono cioè gli indirizzi di memoria). Si possono dividere in: BP registro puntatore alla base dello stack (Base Pointer). SP registro puntatore alla fine dello stack (Stack Pointer). IP registro puntatore delle istruzioni: lavora in parallelo al segmento CS e punta all istruzione che è in esecuzione. Lo stack è un area di memoria della CPU in cui i dati vengono estratti col metodo FIFO (First In First Out) Registri di segmento La memoria della CPU è suddivisa in paragrafi, costituiti da 16 byte contigui e da segmenti costituiti ciascuno da 64k byte. Ogni segmento inizia in corrispondenza di un paragrafo, ossia ad un indirizzo multiplo di 16. CS segmento del codice: punta all indirizzo di testa del segmento contenente il codice del programma. DS segmento dei dati: punta all indirizzo di testa del segmento contenente i dati usati dal programma. ES segmento extra, ovvero segmento dati aggiuntivo. SS segmento dello stack: punta al segmento contenente lo stack. Registro dei flag o di stato Si tratta di un registro a 16 bit, chiamato anche registro di stato, contenente 9 bit utilizzati per indicare differenti condizioni durante l esecuzione del programma OF DF IF TF SF ZF AF PF CF I bit 0,2,4,6,7,11, contengono flag di stato, che indicano risultati di operazioni di programma. I bit 8,9,10, contengono flag di controllo. Gli altri non vengono utilizzati. 4
5 SINTASSI LINGUAGGIO ASSEMBLY Il processore 8086 è un processore a due indirizzi, la sintassi generale è la seguente: ISTRUZIONE DESTINAZIONE, SORGENTE dove: istruzione è un codice operativo; destinazione è l operando che riceve il risultato; sorgente è l operando che fornisce un valore al microprocessore. La destinazione può essere un registro o una variabile. La sorgente può essere un registro, una variabile, una costante. Vediamo alcuni esempi possibili: ed alcuni esempi errati: MOV ax,bx MOV bx,ax MOV variabile,ax ADD al,bx (dimensioni diverse) ADD var1,var2 (due variabili) ADD 5,ax (la dest. non può essere una costante) 5
6 INDIRIZZAMENTO DEI DATI DEL PROCESSORE 8086 Gli indirizzamenti possibili sono: 1) indirizzamento immediato, il sorgente è una costante: MOV AL,8 (cifra decimale) MOV AL,0FH (cifra esadecimale, seguita dal suffisso H e prec. dallo 0 se inizia con una lettera)[b:binario/o:ottale] 2) indirizzamento con registro, gli operandi sono dei registri: MOV AX,BX ADD DL,AL CMP AX,DX MOV CX,BH (non valida - dimensioni diverse) 3) indirizzamento diretto, uno dei due operandi è una variabile: MOV AX,PIPPO MOV PLUTO,AL MOV TIZIO,5 MOV 5,TIZIO (non valida costante come destinazione) MOV CAIO,TIZIO (non valida due variabili) 6
7 MODELLO DI UN PROGRAMMA IN ASSEMBLY CON L EMULATORE EMU8086
8 alcuni modelli di memoria processore 8086: TYNY: unico seg per i dati e per il codice; SMALL: un seg per il codice ed uno per i dati; COMPACT: un seg per il codice e più seg per i dati; MEDIUM: un seg per i dati e più seg per il codice; LARGE: più segmenti per i dati e per la memoria; Definizione di Costanti Le costanti sono nomi dati a valori non compaiono nel codice oggetto ed eseguibile Il valore di una costante non può essere modificato Durante la traduzione, l assemblatore sostituisce ogni occorrenza del nome di una costante con il valore corrispondente Esempi: MAX EQU 10h VAT MOV AH,MAX ;diventa MOV AH,10h MOV AL,VAT ;diventa MOV AL,40h (cod. ASCII *** Definizione di variabili Sintassi: <nome> <tipo> <val_iniziale> dove: <nome> è un identificatore <tipo> indica la dimensione e può essere DB: Byte (8 bit) DW: Word (16 bit) DD: Double Word (32 bit) (non usato nell 8086) <val_iniziale> è il valore di inizializzazione e può essere un valore numerico (es.: VAR1 DB 10) una stringa di caratteri (es.: VAR1 DB casa: $ ) il carattere? (indica nessun valore, es.: VAR1 DB?) 8
9 LABORATORIO DI SISTEMI ASSEMBLY 8086 Dichiarazione di una stringa di caratteri:.data MESSAGGIO1 DB "Inserisci un carattere $" Codice per l output di una stringa di caratteri: MOV DX,OFFSET MESSAGGIO1 MOV AH,09H INT 21H Codice che sposta a capo il cursore:.data CAPORIGA DB 13,10,"$" Input di un carattere inserito dalla tastiera: (il carattere digitato viene inserito nel registro AL).data CARAT DB? MOV AH, 01H => viene caricato in AL INT 21H MOV CARAT, AL Output di un carattere inserito dalla tastiera: MOV DL, CARAT MOV AH, 02H INT 21H 9
10 Dichiarazione di una variabile stringa:.data STRINGA DB N,?,N DUP (?) i cicli: MOV CX,VALORE OBIETTIVO: LOOP OBIETTIVO Salto incondizionato: etichetta: JMP etichetta JMP etichetta1 etichetta1: Confronto: CMP DEST, SORG Esempi di confronto: cmp registro,variabile cmp ax,var1 cmp registro,registro cmp ax,bx cmp variabile,costante cmp var,5 cmp registro,costante cmp al,0dh es.: cmp var1,0dh (13) je etichetta 10
11 Salti condizionati senza segno: (in funzione del risultato della CMP) JE/JNE: salta se DEST=/ SORG (sintassi JE/JNE <etichetta>) JB/JBE: salta se DEST</<=SORG (sintassi JB/JBE <etichetta>) JA/JAE: salta se DEST>/>=SORG (sintassi JA/JAE <etichetta>) Salti condizionati con segno: (in funzione del risultato della CMP) JE/JNE: salta se DEST=/ SORG (sintassi JE/JNE <etichetta>) JL/JLE: salta se DEST</<=SORG (sintassi JL/JLE <etichetta>) JG/JGE: salta se DEST>/>=SORG (sintassi JG/JGE <etichetta>) 11
12 incremento: INC VAR1 INC BX decremento: DEC VAR1 DEC BX sottrazione: (sintassi SUB DEST, SORG) esempi: SUB AX,10 SUB AX,AX SUB VAR1,10 SUB AX,BX SUB BX,VAR1 addizione: (sintassi ADD DEST,SORG) esempi: ADD AX,10 ADD VAR1,10 ADD AX,BX ADD BX,VAR1 12
13 divisione: Senza segno: DIV (DIVision, unsigned) Sintassi: DIV <source> SUB AX,AX ; azzeramento del registro Divisione di un byte per un altro byte MOV AL,VAR1 ; dividendo a 8 bit DIV VAR2 ; quoziente in AL e resto in AH Divisione di una word per un byte MOV AX,VAR1 ; dividendo a 16 bit DIV VAR2 ; quoziente in AL e resto in AH Con segno: IDIV (Integer DIVision) Stessa sintassi di DIV moltiplicazione: Senza segno: MUL (MULtiply, unsigned) Sintassi: MUL <source> MOV AL,NUMERO1 ; operando a 8 bit MUL NUMERO2 ; risultato in AL (8 bit) MOVE AX,NUMERO1 ; operando a 16 bit MUL NUMERO2 ; risultato in AX (16 bit) Con segno: IMUL (Integer MULtiply) Stessa sintassi di MUL 13
14 Le variabili (array) Gli array sono sequenze di dati di tipo omogeneo Es.: vettori numerici (1,2,5,3) Es.: stringhe di caratteri ( prova ) Le variabili array si dichiarano come segue: a DB 1, 4, 6, 16, 3, 0 ; array di 6 byte b DB H, e, l, l, o ; array di caratteri c DB 5 DUP(9) ; come c DB 9,9,9,9,9 d DW 10 DUP(?) ; array di 10 word non inizializzate Uso delle variabili array Per leggere/scrivere il contenuto di un elemento: MOV <Registro>, <Variabile>[indice] MOV <Variabile>[indice], <Registro> Esempio: MOV AL, a[3] ;copia in AL l elemento dell array a di indice 3 E possibile usare i registri BX, SI, DI, BP per contenere l indice: MOV SI, 3 MOV AL, a[si] ; copia in AL l elemento dell array a di indice 3 14
15 vettori di caratteri non definito: dimensionamento: DIM EQU 10 (inizio del progr.) dichiarazione: VET DB DIM DUP (?) definizione nel programma: VET[SI] >SI indice del vettore 15
16 Esempi di codice: Trasformazione di un carattere in un numero SUB NUM, 30h (sottrae al valore corrispondente del codice ASCII del carattere il valore 30h[48d], il risultato è un valore che va da 0 a 9 [per es. se il carattere inserito da tastiera num = 2, il corrispondente codice ASCII è 50, sottraendo 48, avremo 2 come valore numerico] ) Trasformazione di un numero ad una cifra in un carattere ADD NUM, 30h (somma al valore corrispondente del codice ASCII del carattere il valore 30h[48d], il risultato è un valore che va da 48 a 57 [per es. se il valore di num = 2, il corrispondente codice ASCII è 50, sommando 48, avremo 50] ) 16
17 Input numero a due cifre: LABORATORIO DI SISTEMI ASSEMBLY 8086
18 Visualizzazione numero a due cifre: LABORATORIO DI SISTEMI ASSEMBLY 8086
19 Input/output vettore di un carattere: LABORATORIO DI SISTEMI ASSEMBLY 8086
20 Input di un vettore numerico con elementi a 2 cifre: n EQU 10.
21 Output di un vettore numerico con elementi a 2 cifre:
Introduzione. Architettura
Introduzione Questo simulatore fornisce una versione semplificata dell assemblatore sfruttato dal processore 8088 trasformando il codice inserito in input in codice eseguibile e ne simula l esecuzione
DettagliProgrammazione in linguaggio assembly per architetture Intel 8088
Programmazione in linguaggio assembly per architetture Intel 8088 Marco Di Felice 1 Università of Bologna Dipartimento di Scienze dell Informazione Corso di Architettura degli Elaboratori mail: difelice@cs.unibo.it
DettagliAssembly. Modello x86
Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore
DettagliNel microprocessore 8086 abbiamo una gran quantità di registri
I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1
DettagliFamiglia dei processori INTEL
Famiglia dei processori INTEL 1975 2002 8080-8086 - 80286-80386 - 80486 - Pentium - Pentium II-III-IV - Itanium Compatibilità del SW (assemby) 8086 80286 80386 80486 Pentium Pentium III Perché studiare
DettagliLA CPU INTEL Vantaggi dei programmi Assembly
1 LA CPU INTEL 8086 Vantaggi dei programmi Assembly L utilizzo del linguaggio Assembly anzichè di un linguaggio ad alto livello (tipo C o Pascal) è talvolta giustificato dalla maggiore efficienza del codice;
Dettaglinot ah ; ah = F7h (247) perche' il complemento a 1 di 8 ( )
ESERCIZIO 1 Programma di calcoli aritmetici e logici ; locazione origine del seguente codice mov ax,24 ; ax = 24 mov cx,0ah ; cx = 10 div cx ; dx = 4 (resto) e ax = 2 (quoziente) mov al, 4 ; al = 4 mov
DettagliArchitettura degli elaboratori (A)
Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma
DettagliL Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica
L Assembler 8086 M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Si suddividono in: istruzioni per il calcolo binario istruzioni
DettagliInterazione con il DOS e il BIOS
Interazione con il DOS e il BIOS ARGOMENTI PRESENTATI IN QUESTI LUCIDI Routine di BIOS e DOS Due modalità diverse di restituire il controllo al DOS L interazione con le routine del DOS: l interrupt 21H
DettagliProcessore Danilo Dessì. Architettura degli Elaboratori.
Processore 888 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it 888 L 888 è un processore che è stato progettato dalla Intel nel periodo 1978/1979 La sua architettura è simile a quella
DettagliCALCOLATORI ELETTRONICI II
CALCOLATORI ELETTRONICI II LE ISTRUZIONI ARITMETICHE E DI MANIPOLAZIONE DEI BIT Argomenti della lezione Le istruzioni aritmetiche Le istruzioni di manipolazione dei bit Le istruzioni aritmetiche Istruzioni
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088
UNIVERSITÀ DEGLI STUDI DI CAGLIARI acoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 888 Danilo Dessì danilo_dessi@unica.it Processore 888 Il processore
DettagliCalcolatori Elettronici Lezione A2 Architettura i8086
Calcolatori Elettronici Lezione A2 Architettura i8086 Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Architettura i8086 Sommario: L i8086 Registri Accesso alla memoria: indirizzi
DettagliIl linguaggio Macchina
Il linguaggio Assembly della CPU 8086 Il linguaggio Macchina 2 Fortemente orientato alla macchina Direttamente eseguibile Praticamente illeggibile Utilizzato negli anni 50 70 per sviluppare programmi Attualmente
Dettagliiafelice at cs(dot)unibo(dot)it
Corso di Archite@ura degli Elaboratori Modulo di Assembly ASSEMBLY 8088 Bruno Iafelice Università di Bologna iafelice at cs(dot)unibo(dot)it 1 ArgomenE Formato delle istruzioni Indirizzamento Istruzioni
DettagliLABORATORIO DI SISTEMI
ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 2 LABORATORIO DI SISTEMI OGGETTO: 1) Scrivere un programma, in linguaggio Assembly, per una CPU Intel 8086, che sommi due numeri (var_1,
DettagliIl microprocessore 8086
1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un
DettagliProgrammazione Assembly per 8088: Esercizi svolti
Programmazione Assembly per 8088: Esercizi svolti Marco Di Felice 13 dicembre 2006 1 Esercizio 1 (esercizio 1 del Tanenbaum, Appendice C) TESTO. Dopo l esecuzione dell istruzione MOV AX, 702 qual è il
DettagliPASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO
PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO Programma diviso in due moduli: MA.ASM: programma pricipale e funzioni di utilità MB.ASM: sottoprogramma di elaborazione Primo modulo: MA.ASM EXTRN alfa: BYTE
DettagliEsercizi per il recupero del debito formativo:
ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste
Dettagli; ; Definizione costanti
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 TITLE
DettagliLezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLezione Uno: Il linguaggio Assembly e i metodi di indirizzamento (libro di testo pag )
Ud6: Linguaggio Assembly Lezione Uno: Il linguaggio Assembly e i metodi di indirizzamento (libro di testo pag. 119-127) Caratteristiche di un linguaggio Assembly Basso livello Diverso per ogni architettura
DettagliLinguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliLezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Dettaglijne su1 mov ah,2 add dl,48 int 21h mov ah,2 add dh,48 mov dl,dh int 21h mov ah,4ch int 21h
Compito in classe 3D 1) Sia dato il set di istruzioni dell ipotetica CPU studiata sul libro di testo più le istruzioni viste a lezione. Scrivere un programma che inizia alla posizione 4 di memoria e che
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel della terza generazione progetto del 1978/79 address bus: 20 bit 1M byte data bus: 8 bit per l'8088, 16 bit per l'8086 identico formato
Dettagli1.1.1 Esercizio conta le occorrenze di un carattere in una stringa
1.1.1 Esercizio conta le occorrenze di un carattere in una stringa Scrivere un programma che legge una stringa di memoria lunga un numero arbitrario di caratteri (ma terminata da \0), inserita in un buffer
DettagliCPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore
CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura
DettagliConsegne estive per gli studenti con sospensione del giudizio nella materia Sistemi per l'elaborazione e la trasmissione dell'informazione.
Consegne estive per gli studenti con sospensione del giudizio nella materia Sistemi per l'elaborazione e la trasmissione dell'informazione. Facendo esclusivamente uso delle istruzioni del linguaggio macchina
DettagliI.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086
I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi Elementi di Assembly 8086 1 Assembly 8086 I registri Per poter elaborare le informazioni ricevute dall esterno,
Dettagli)21'$0(17,',,1)250$7,&$,,
)21'$0(17,',,1)250$7,&$,, (6(5&,7$=,21(Qƒ,//,1*8$**,2$66(0%/(5 Indicare (in binario) lo stato dei flag C, O, S, Z, P e del registro AH dopo l esecuzione delle due MOV AH, 70 ADD AH, 70 La prima istruzione
DettagliConfronti e salti condizionati
Confronti e salti condizionati I confronti tra numeri x e y sfruttano l effetto di / x,y sui flag. Occorre ricordare che è unica, ma l effetto sui flag riflette l interpretazione unsigned o signed dei
DettagliOgni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.
Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Campo Codice Operativo Campo Operandi K bit n-k bit n bit 1 Istruzione
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel di terza generazione progetto originario del 1979, ancora oggi interessanti per: motivi didattici: l architettura dei processori Intel
DettagliCALCOLATORI ELETTRONICI II
CALCOLATORI ELETTRONICI II L ASSEMBLATORE Microsoft MASM MASM Argomenti della lezione Faremo riferimento al linguaggio sorgente accettato dall assemblatore Microsoft MASM nelle versioni successive alla
DettagliIl linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I
Il linguaggio Assembly Architettura degli Elaboratori e delle Reti Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it 1 Linguaggio
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel di terza generazione progetto originario del 1979, ancora oggi interessanti per: motivi didattici: l architettura dei processori Intel
DettagliISA (Instruction Set Architecture) della CPU MIPS32
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS32 Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
DettagliLezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliI sistemi. Sistema: è un insieme di parti o componenti correlati tra di loro in modo che tale insieme possieda una struttura e abbia un comportamento.
I sistemi Sistema: è un insieme di parti o componenti correlati tra di loro in modo che tale insieme possieda una struttura e abbia un comportamento. Classificazione dei sistemi: Sistemi artificiali: creati
DettagliLinguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche
3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Corso di Laurea Triennale in Informatica Università degli Studi di Bari Laboratorio lez1: il processore 8086/88 Prof. S.Pizzutilo Microprocessori INTEL per il PC 8080 (1974)
DettagliIl linguaggio macchina
Il linguaggio macchina Un istruzione in linguaggio macchina è, sul piano astratto, una tripla strutturata: i = (f, P1, P2) ove: f F insieme dei codici operativi del processore, cioè delle operazioni elementari
DettagliARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088
ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel della terza generazione progetto del 1978/79 address bus: 20 bit Ä 1M byte data bus: 8 bit per l 8088, 16 bit per l 8086 identico
DettagliIntroduzione al linguaggio assembly MC68000
Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly MC68000 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie
DettagliFondamenti di Informatica B
Fondamenti di Informatica B Lezione n. 11 Alberto Broggi Gianni Conte A.A. 2005-2006 Fondamenti di Informatica B Lezione n.11n ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO
DettagliL'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 -
L'INDIRIZZAMENTO NEL PROCESSORE MC 68000 - PARTE 1 - CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Modi di indirizzamento Tecniche di indirizzamento:
DettagliIntroduzione al linguaggio macchina. Istruzione l/m
Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliISA (Instruction Set Architecture) della CPU MIPS
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
DettagliOPERAZIONI ARITMETICHE
OPERAZIONI ARITMETICHE Merker speciali: SM1.0 risultato uguale a zero SM1.1 overflow SM1.2 risultato negativo SM1.3 divisione per zero Tabella riassuntiva (codici operativi in IL) INTERI (16 Bit) DOUBLE
DettagliIl linguaggio assembly
Il linguaggio assembly Introduzione al linguaggio macchina Indice Che cos è l assembly Elementi del linguaggio Memoria di programma Registri interni e di I/O Registri particolari Rappresentazione dell
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliLezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly
Architettura degli Elaboratori e delle Reti Lezione 12 Assembly II Set di Istruzioni MIPS Strutture di controllo in Assembly Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università
DettagliMemoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina
Architettura considerata in CPUSim Linguaggio macchina -- esempio in CPUSim Manuale di CPU Sim Memoria con 128 celle Indirizzi da 12 bit Registri usuali per un architettura di Von Neumann (, IR,, ) Un
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088 Danilo Dessì danilo_dessi@unica.it Esercizi 1. Scrivere un
DettagliLaboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 29/01/07 Nota Questi lucidi sono tratti
DettagliIstruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
DettagliArchitettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione
Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina
DettagliModi di indirizzamento del processore MC68000 (parte prima)
Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte prima) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea
DettagliModi di indirizzamento del processore MC68000 (parte prima)
Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte prima) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Modello di programmazione
DettagliFetch Decode Execute Program Counter controllare esegue prossima
Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo
DettagliSistemi Operativi. ASSEMBLER per Minix Lez. 17
Sistemi Operativi ASSEMBLER per Minix Lez. 17 Minix IA-32 Assembly Language Un linguaggio di programmazione più vicino al modo di esprimersi umano, del linguaggio macchina ma ancora molto vicino al linguaggio
DettagliIstruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Corso di Laurea Triennale in Informatica Università degli Studi di Bari Anno Accademico 2009-2010 Laboratorio lez1: il processore 8086/88 Prof. S.Pizzutilo I processori Intel
DettagliArchitetture dei Sistemi Elettronici
Architetture dei Sistemi Elettronici Roberto Roncella 15. Introduzione al linguaggio assembly Il linguaggio assembly È lo strumento di programmazione più vicino alla realtà fisicaelettronica di un elaboratore
DettagliIl linguaggio assembly 8086
Il linguaggio assembly 8086 Introduzione Il linguaggio macchina Il linguaggio naturale di un microprocessore è il linguaggio macchina. Nel linguaggio macchina non esistono riferimenti astratti o simbolici
DettagliArchitettura dei Calcolatori elettronici
Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore
DettagliIstruzioni e linguaggio macchina
Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare
DettagliLINGUAGGIO ASSEMBLER PER 8086/8088
LINGUAGGIO ASSEMBLER PER 8086/8088 Linguaggio Macchina insieme di istruzioni che un elaboratore è in grado di eseguire direttamente strettamente correlato alla realizzazione fisica dell'elaboratore Esempio
DettagliModi di indirizzamento parte 1. Modello di programmazione del processore MC68000
Corso di Calcolatori Elettronici I A.A. 2010-2011 Modi di indirizzamento parte 1 Lezione 21 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in
DettagliL Assembler 80x86 Concetti Generali. M. Rebaudengo M. Sonza Reorda P. Bernardi
L Assembler 80x86 Concetti Generali M. Rebaudengo M. Sonza Reorda P. Bernardi Sommario Introduzione Pseudo-Istruzioni Operatori Modi di Indirizzamento Istruzioni Sommario Introduzione Pseudo-Istruzioni
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
DettagliARCHITETTURA DEL MICROPROCESSORE INTEL 8086 (iapx86/10)
ARCHITETTURA DEL MICROPROCESSORE INTEL 8086 (iapx86/10) Chip con 40 piedini e 29000 transistori Progettato a metà degli anni 70, periodo in cui la densità di integrazione era relativamente bassa ( solo
DettagliESERCITAZIONE Operandi Architettura ad 1 operando Architettura a 2 operandi Architettura a 3 operandi
ESERCITAZIONE 9 Sommario Operandi Registri dedicati Gestione di sottoprogrammi Meccanismi di interruzione 1. Operandi Le prestazioni di una CPU possono variare considerevolmente a seconda del numero di
DettagliCalcolatore: sottosistemi
Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria Calcolatore: organizzazione a bus Il processore o CPU Unità di controllo
DettagliArchitettura di un calcolatore: introduzione
Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie
DettagliIntroduzione al linguaggio macchina
Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliArchitettura di un calcolatore: introduzione. Calcolatore: sottosistemi
Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliLinguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA
Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi
DettagliArchitettura del calcolatore (Seconda parte)
Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly
DettagliIl linguaggio Assembly della CPU 8086. Il linguaggio Macchina
Il linguaggio Assembly della CPU 8086 Il linguaggio Macchina Fortemente orientato alla macchina Direttamente eseguibile Praticamente illeggibile Utilizzato negli anni 50 70 per sviluppare programmi Attualmente
DettagliLinguaggio macchina: utilizzo di costanti, metodi di indirizzamento
Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità
DettagliLABORATORIO DI SISTEMI
ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 4 LABORATORIO DI SISTEMI OGGETTO: Scrivere un programma in Assembly, per CPU 8086, utilizzando le porte ed i dispositivi virtuali collegate
DettagliTutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.
I processori Intel Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086. L'8086 e' un processore a 16 bit quindi i suoi registri potranno
DettagliParte 3. Linguaggio Macchina e Assembler
Parte 3 Linguaggio Macchina e Assembler LINGUAGGIO MACCHINA Descriveremo una CPU MINIMA dotata di un certo insieme di istruzioni I ciascuna realizzata da un corrispondente circuito C I. Questo insieme
DettagliESERCIZIO: LETTURA DI UNA STRINGA (una serie di caratteri fino al carattere di INVIO) con funzioni DOS
ESERCIZIO: LETTURA DI UNA STRINGA (una serie di caratteri fino al carattere di INVIO) con funzioni DOS COD segment CODE assume CS: COD, DS: DATI, SS: STACK1 main proc far push ds mov ax, 0 push ax mov
DettagliBus Indirizzi a 20 bit. Anno 1979 Bus Indirizzi a 20 bit Bus Dati a 8 bit Set di istruzioni compatibile con 8086
Assembler IA16 8086 Anno 1978 Bus Indirizzi a 20 bit Bus Dati a 16 bit 8088 Anno 1979 Bus Indirizzi a 20 bit Bus Dati a 8 bit Set di istruzioni compatibile con 8086 Registri 8086 AX BX CX DX 16 bit Registri
DettagliArchitettura di un calcolatore: introduzione. Calcolatore: sottosistemi
Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
DettagliModi di indirizzamento del processore MC68000 parte 1
Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 parte 1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
DettagliL insieme delle istruzioni (6)
L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso
Dettagli