Lezione Uno: Il linguaggio Assembly e i metodi di indirizzamento (libro di testo pag )
|
|
- Simona Guerra
- 7 anni fa
- Visualizzazioni
Transcript
1 Ud6: Linguaggio Assembly Lezione Uno: Il linguaggio Assembly e i metodi di indirizzamento (libro di testo pag ) Caratteristiche di un linguaggio Assembly Basso livello Diverso per ogni architettura (perché corrispondente al linguaggio macchina...e ogni architettura ha il suo set di istruzioni macchina) Corrispondenza di 1 a 1 tra istruzioni in linguaggio macchina e istruzioni in linguaggio assembly... un'istruzione macchina corrisponde esattamente ad un istruzione in assembly e viceversa Stesso formato istruzioni: ETCHETTA: OPERAZIONE OPERANDI Facilitazioni che l'asssembly mette a disposizione rispetto al linguaggio macchina L'operazione viene indicata con un codice mnemonico e non binario ( ADD non 1001) Si possono dare nomi alle variabili e quindi riferirsi a locazioni in memoria attraverso un nome e non solo attraverso un indirizzo Si possono utilizzare etichette (nomi simbolici) per indicare i punti di arrivo delle istruzioni di salto. Formato istruzione: ETCHETTA: OPERAZIONE OPERANDI Etichetta: Utilizzata come punto di arrivo nelle istruzioni di salto al posto dell'indirizzo binario Operazione: Parola chiave che identifica l'istruzione (ADD somma, JMP Salto incodizionato,.) Operando/i: Il valore o i valori su cui si effettua l'operazione. Al seconda del metodo di indirizzamento utilizzato un operando può indicare: 1. Un valore costante 2. Il nome di una variabile 3. Il riferimento ad un registro 4. Il nome di una variabile che contiene l'indirizzo in memoria METODI DI INDIRIZZAMENTO Indirizzamento immediato L'istruzione contiene già l'operando (fornito come costante). Ovviamente l'eventuale operando destinazione non può mai essere fornito con questo tipo di indirizzamento. I valori costanti possono venir specificati in binario (b), ottale (o), decimale (d) o esadecimale (h). Quando si specifica un valore, quindi, è necessario indicare in che base bisogna considerarlo aggiungendo la lettera corrispondente.
2 Esempi 34d significa 34 in decimale 101b significa 101 i binario ecc. Indirizzamento tramite registro L'istruzione contiene il nome del registro che funge da operando. I registri utilizzabili sono a 8 bit o a 16 bit. Registri a 8 bit: AL, AH, BL, BH, CL, CH, DL, DH Prendendo a coppie i registri a 8 bit si possono formare dei registri a 16 bit AX (AHAL), BX (BHBL), CX (CHCL), DX (DH,DL) Esempio MOV AL,15d Salva nel registro AL al il valore 15. In questa istruzione ci sono due operandi; il primo è passato con indirizzamento tramite registro il secondo con indirizzamento immediato Indirizzamento diretto L'istruzione indica il nome della variabile che funge da operando. In un'istruzione non si possono mai fornire entrambi gli operandi con l'indirizzamento diretto Esempio. Supponiamo che la variabile var1 sia di 8 bit, sia stata dichiarata e che contenga il valore 17d; l'operazione MOV AL, VAR1 ha il primo operando AL specificato per indirizzamento tramite registro ha il secondo operando VAR1 specificato per indirizzamento diretto ha l'effetto di copiare il valore contenuto in var1 (17d) anche nel registro AL Indirizzamento indiretto L'istruzione contiene il nome della variabile che contiene l'indirizzo di memoria in cui si può trovare l'operando. Indirizzamento implicito Alcune operazioni (per esempio la divisione) assumono che un operando si trovi sempre nello stesso registro e quindi non viene specificato Lezione Due: Le Istruzioni Base e la dichiarazione delle variabili (libro di testo pag e ) Dichiarazione di variabili Nome_variabile DB (valore) Nome_variabile DW )valore) La differenza tra le 2 dichiarazioni è che per la prima, tipo byte, vengono riservati in memoria 1 byte; mentre per la seconda, tipo word, vengono riservati in memoria 2 byte. Il valore, sia nel tipo byte sia word, può essere: costante binaria: Es: b costante decimale: Es: 123d costante ottale: Es: 47o costante esadecimale: Es: A4Fh senza inizializzarla: Es:?
3 Istruzione di trasferimento MOV destinazione, sorgente Copia i dati o gli indirizzi di 8 o 16 bit dalla sorgente alla destinazione (destinazione = sorgente in un linguaggio ad alto livello) destinazione non può essere fornito con indirizzamento immediato destinazione e sorgente devono avere la stessa dimensione sorgente e destinazione non devono essere entrambe fornite per indirizzamento diretto ISTRUZIONI ARITMETICHE Addizione ADD destinazione, sorgente destinazione=destinazione+sorgente Le stesse dell'istruzione MOV Addizione con riporto ADC destinazione, sorgente destinazione=destinazione+sorgente+bit di carry Le stesse dell'istruzione MOV Sottrazione SUB destinazione, sorgente destinazione=destinazione-sorgente Le stesse dell'istruzione MOV Sottrazione con riporto SBB destinazione, sorgente destinazione=destinazione-sorgente-bit di carry Le stesse dell'istruzione MOV Moltiplicazione
4 MUL fattore Se fattore ha 8 bit AX = AL * fattore Se fattore ha 16 bit DXAX = AX * fattore Fattore non può essere fornito con indirizzamento immediato Divisione DIV dividendo Se dividendo ha 8 bit AH = resto di AX/dividendo AL = quoziente di AX/dividendo Se dividendo ha 16 bit DX = resto di DXAX/dividendo AX = quoziente di DXAX/dividendo Limitazioni Le stesse di Mul Lezione Tre: L'input/output Il linguaggio Assembly non prevede istruzioni per la visualizzazione e l acquisizione dei caratteri e quindi sarebbero necessari dei programmi in Assembly stesso molto complicati. Per ovviare a tale inconveniente ( e aggiungerei per fortuna!) possiamo utilizzare le funzioni libreria di DOS che sono richiamabili attraverso l istruzione: L istruzione int 21h permette di richiamare diversi servizi del dos tra cui: l input e l output di CARATTERI (servizi 01 e 02) invio di un carattere sulla stampante (servizio 05) Visualizzazione di una stringa (servizio 09) Acquisizione di una stringa (servizio 10) Prima di invocare l istruzione è necessario mettere nel registro AH il numero del servizio che si intende utilizzare Input di un carattere (servizio 01) Il servizio 01 attende un carattere dallo standard input, lo visualizza sul video e copia il codice ASCII del carattere inserito nel registro AL. Per invocare questo servizio è necessario salvare il valore 01d nel registro AH prima di chiamare INT21H. L acquisizione di un carattere è dunque eseguita dalle seguenti istruzioni assembly
5 Mov ah,01h Int 21h Dopo queste due istruzioni in AL si trova il codice ASCII del carattere inserito che, ovviamente, andrà copiato (con MOV) in qualche altro registro o in qualche variabile prima di eseguire la prossima acquisizione. Output di un carattere (servizio 02) Il servizio 02 stampa su video il carattere il cui codice ASCII è contenuto in AL. Per invocare questo servizio è necessario salvare il valore 02d nel registro AH ed il codice ASCII del carattere che si vuole stampare nel registro AL prima di chiamare INT21H. L acquisizione di un carattere è dunque eseguita dalle seguenti istruzioni assembly Mov ah,02h Mov AL,codice carattere da stampare Int 21h Dopo queste tre istruzioni viene visualizzato il carattere con codice ASCII contenuto in AL. Esempi: Visualizzazione sullo schermo di un punto di domanda e uno spazio bianco: MOV AL, 63d MOV AH, 02h MOV AL, 32d MOV AH, 02h Passaggio alla riga successiva con inizio a capo della riga: MOV AL, 10d MOV AH, 02h MOV AL, 13d MOV AH, 02h Acquisizione di un dato MOV AH, 01h MOV Var, AL Input di numeri Purtroppo non esiste un servizio del DOS che consenta di acquisire in input numeri decimali; per realizzare tale scopo è indispensabile convertire i codici ASCII inseriti, che corrispondono alle cifre che compongono il numero, nel numero decimale corrispondente. Il problema è semplice nel caso di numeri ad una cifra in quanto le cifre decimali occupano posizioni adiacenti nella tabella dei codi ASCII ed in particolare: Carattere Codice ASCII
6 0 48 (0+48) 1 49 (1+48) 2 50 (2+48) 3 51 (3+48) 4 52 (4+48) 5 53 (5+48) 6 54 (6+48) 7 55 (7+48) 8 56 (8+48) 9 57 (9+48) Se, dunque, si vuole convertire il codice ASCII della cifra inserita (contenuta in AL) nel corrispondente numero decimale ad una cifra è sufficiente sottrarre 48 ;Selezionare il servizio di acquisizione carattere mettendo 02 nel registro AH MOV AH,01d ;Invocare l int 21h Int 21h ;Sottrarre al contenuto di AL 48 per trasformare la codifica ASCII nel numero ad una ;cifra corrispondente SUB AL,48d ;Salvo in Var il numero mov var,al Risulta ovviamente più complessa l acquisizione di un numero a due cifre. Il procedimento di acquisizione di un numero a due cifre può essere diviso nelle seguenti fasi Acquisizione del codice ASCII della cifra che costituisce le decine Trasformazione del codice ASCII in cifra sottraendo 48d Moltiplicare per dieci il valore ottenuto. Per far questo devo Mettere in AL uno dei due fattori (il valorew ottenuto al passo precedente) Mettere 10 in un registro qualsiasi Eseguire MUL passando come operando il registro in cui ho messo 10. <il risultato sarà in AX ma poiché sarà minore di 255 AH sarà composto di zeri quindi la parte significativa del risultato è in AL Salvare temporaneamente il valore del numero senza le unità (contenuto in AX come da specifiche moltiplicazione) nella variabile o in un altro registro Acquisizione del codice ASCII della cifra che costituisce le unità Trasformazione del codice ASCII in cifra sottraendo 48d Sommarlo al valore ottenuto precedentemente e salvare il risultato nella variabile Il codice risulta dunque essere
7 ;Leggo il codice ASCII delle decine (passo1) mov ah,01h int 21h ;in AL ho il codice ASCII del carattere delle decine ;sottraggo 48 per ottenere la cifra (passo 2) sub al,48d ;moltiplico le decine per 10 (passo 3) mov ah,00d mov bl, 10d mul bl ; salvo il valore ottenuto (passo 4) mov var,al ;Leggo il codice ASCII delle unità (passo 5) mov ah,01h int 21h ;in AL ho il codice ASCII del carattere delle unità ;sottraggo 48 per ottenere la cifra e salvo il risultato nella variabile unità (passo 6 e 7) sub al,48d add var, al Nel caso di numeri a tre cifre il problema si risolve in modo analogo aggiungendo la lettura delle centinaia (che andranno moltiplicate per cento) e facendo attenzione che potrebbero servire 16 bit per contenere il numero inserito. Output di numeri Purtroppo non esiste un servizio del DOS che consenta di visualizzare numeri decimali; per realizzare tale scopo è indispensabile convertire il numero decimale che si vuole visualizzare nei codici ASCII delle cifre che lo compongono e viceversa. Il problema è semplice nel caso di numeri ad una cifra in quanto le cifre decimali occupano posizioni adiacenti nella tabella dei codi ASCII ed in particolare: Carattere Codice ASCII 0 48 (0+48) 1 49 (1+48) 2 50 (2+48) 3 51 (3+48) 4 52 (4+48) 5 53 (5+48) 6 54 (6+48) 7 55 (7+48) 8 56 (8+48) 9 57 (9+48)
8 Se, dunque, si vuole stampare il contenuto del numero minore di dieci contenuto nella variabile var bisogna: ;Spostarlo nel registro AL per prepararsi alla stampa mov AL, var ;Aggiungere al contenuto di DL 48 per trasformare il numero nella codifica ASCII ;della cifra corrispondente ADD AL,48d ;Selezionare il servizio di stampa mettendo 02 nel registro AH MOV AH,02d ;Invocare l int 21h Int 21h Risulta ovviamente più complessa la stampa di un numero a due cifre. Il procedimento di stampa di un numero a due cifra può essere diviso nelle seguenti fasi 1. Divisione del numero da stampare per 10. Questo primo passo richiede a) Spostamento del dividendo (numero da stampare) in AL b) Azzeramento del registro AH in quanto il dividendo di una divisione è tutto AX c) Spostamento del divisore (10) in un registro d) Divisione per il registro in cui si è messo il divisore 2. Salvataggio in qualche registro delle Unità costituite dal resto della divisione e contenute (come da specifiche della divisione) in AH 3. Conversione della cifra delle decine (contenuta in AL) in carattere ASCII sommando Selezionare il servizio di stampa mettendo 02 in AH 5. Invocare int 21h per stampare le decine 6. Spostare le unità precedentemente salvare in AL 7. Conversione della cifra delle unità (contenuta ORA in AL) in carattere ASCII sommando Selezionare il servizio di stampa mettendo 02 in AH 9. Invocare int 21h per stampare le decine Il codice risulta, dunque essere il seguente: ;Metto il numero a due cifre da stampare in al in quanto dovrò dividerlo ;per dieci ed il dividendo va in AX (passo 1a) mov al,ris ;Azzero AH in quanto il dividendo è tutto AX (passo 1b) mov ah,00d ;Metto in BL 10d (divisore) (passo 1c) mov bl, 10d ;divido per 10 (passo 1d) div bl
9 ;adesso in ah ho il resto delle divisione (unità) ed in AL il quoziente (centinaia) ; salvo in qualche registro (DL) le unità mov dl, AH ;Adesso ho decine in AL e unità in DL non devo far altro che stamparli, uno alla volta ;ricordandomi di convertirli nel rispettivo codice ascii sommando 48 ;stampo le decine (passi 3, 4, 5) add al,48d mov ah,02h int 21h ;stampo le unita (passi 6,7,8,9) mov al,dl add al,48d mov ah,02h int 21h Lezione Quattro: Istruzioni di salto e simulazioni costrutti di selezione e iterativo (libro di testo pagina ) Salto incodizionato JMP etchetta La prossima istruzione che verrà eseguita non sarà quella che segue ma quella posizionata dopo la scritta etichetta: Confronto CMP op1, op2 Setta opportunamente i registri di stato in modo da memorizzare se: op1>op2 op1>=op2 op1=op2 op1<>op2 op1<=op2 op1<op2 op1 e op2 devono avere la stessa dimensione op1 e op2 non devono essere entrambe fornite per indirizzamento diretto Salto codizionato Jxx etichetta
10 dove xx sono una o due lettere che verranno specificate di seguito che indicano in che condizione saltare. L'istruzione di salto condizionato deve essere preceduta da un CMP op1,op2 possibili condizioni: JE salta se op1 = op2 JNE salta se op1<> op2 JA salta se op1>op2 JAE salta se op1>= op2 JB salta se op1< op2 JBE salta se op1<op2 Effetto Se la condizione è rispettata si salta a etichetta altrimenti si esegue l'istruzione seguente Simulazione del costrutto IF in assembly Supponiamo di voler simulare il seguente programma C if(var1>var2){ ist1 ist2 } else{ ist3 ist4 } ist5 ;per prima cosa devo confrontare var1 con var2 ma poiché l'istruzione cmp non ammette due operandi con indirizzamento indiretto devo spostare una delle due (var1) in un registro (per esempio al) MOV AL,var1 CMP AL,var2 ;se la condizione è rispettata (cioè se al>var2) altrimenti devo eseguire ist3 e ist4 JA allora ;se var1 non è maggiore di var2 JA non esegue il salto e prosegue quindi qui devo mettere le istruzioni da eseguire quando la condizione non è rispettata (ist3 e ist4) mentre, successivamente e dopo l'etichetta allora: scrivero le istruzioni ist1 e ist2 IST3 IST4 ;a questo punto devo andare alla fine dell'if altrimenti eseguirei tutte e due le parti (then e else) JMP fine allora: ;qui è il punto in cui salterà la precedente istruzione JA quindi bisogna mettere le istruzioni ist1 e ist2
11 IST1 IST2 ;a questo punto si mette l'etichetta di fine della struttura fine: IST5 Simulazione del costruttowhile in assembly Supponiamo di voler simulare il seguente programma C while(var1>var2){ ist1 ist2 } ist3 ;come prima operazione devo mettere un'etichetta di inizio ciclo ciclo: ;prima di eseguire il corpo devo confrontare var1 con var2 ma poiché l'istruzione cmp non ammette due operandi con indirizzamento indiretto devo spostare una delle due (var1) in un registro (per esempio al) MOV AL,var1 CMP AL,var2 ;se la condizione non è rispettata (cioè se al<=var2) devo uscire dal ciclo quindi salto ad un etichetta che metterò alla fine JBE fine ;se non sono uscito dal ciclo eseguo il suo corpo (ist1 e ist2) e poi salto in modo incodizionato in testa (etichetta ciclo) al fine di ri testare la condizione IST1 IST2 JMP ciclo fine: IST3
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
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
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;
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
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
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
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
DettagliBreve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086)
PROF. CARMELO CALARCO Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086) 1 IL LINGUAGGIO ASSEMBLY Il linguaggio assembly è un linguaggio di programmazione a basso livello. Per linguaggi di basso livello
DettagliEsercizi per il corso di Architettura dei Calcolatori. Anno accademico 2008/09. Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione )
Esercizi per il corso di Architettura dei Calcolatori Anno accademico 2008/09 Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione ) 1) Caricare nel registro accumulatore AX il contenuto della
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
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
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
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
Dettagli1.1 Rappresentazione di numeri naturali ed interi
1.1 Rappresentazione di numeri naturali ed interi La ALU è in grado di eseguire operazioni logiche (AND, OR, NOT, etc.) su stringhe di bit ed operazioni aritmetiche, interpretando le stringhe di bit che
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
DettagliLABORATORIO DI SISTEMI
ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 5 LABORATORIO DI SISTEMI OGGETTO: Progettare il software per il controllo di un serbatoio, gestendone la fase di riempimento e quella di
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,
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
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,
DettagliIstruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliAritmetica elementare
51 Aritmetica elementare Capitolo 2 2.1 Sistemi di numerazione............................... 52 2.1.1 Sistema decimale................................ 52 2.1.2 Sistema binario.................................
DettagliCasi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova
Casi di prova Casi di prova Quando si vuole testare un algoritmo si devono costruire vari casi di prova. Invece di eseguire il programma più volte si può costruire un file di dati contenente tutti i casi
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
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
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
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
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
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
DettagliRappresentazione dell Informazione
Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
DettagliPag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.
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
DettagliIl linguaggio macchina
Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina
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
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
DettagliFondamenti di Informatica
Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel
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
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
DettagliARITMETICA BINARIA. La somma viene eseguita secondo le regole per la somma di due bit, di seguito riportate:
ARITMETICA BINARIA Le operazioni che possono essere fatte sui numeri binari, sono le stesse che vengono effettuate sui numeri decimali. Due numeri binari possono essere quindi sommati, sottratti, moltiplicati
DettagliESERCITAZIONE 4. Livello d architettura dell insieme di istruzioni Decodifica dell indirizzo
ESERCITAZIONE 4 Livello d architettura dell insieme di istruzioni Decodifica dell indirizzo 2 Livello d architettura dell insieme di istruzioni 3 Livello d architettura dell insieme di istruzioni (1) 1)
Dettagli04 Aritmetica del calcolatore
Aritmetica del calcolatore Numeri a precisione finita - con un numero finito di cifre - non godono della proprietà di chiusura - le violazioni creano due situazioni distinte: - overflow - underflow Pagina
DettagliInformatica teorica Lez. n 10 Macchine a registri. Macchine a registri. Prof. Giorgio Ausiello Università di Roma La Sapienza
Macchine a registri Argomenti della lezione Macchine a registri (RAM) Costi di calcolo RAM e macchine di Turing Macchine a registri elementari Macchine a registri (RAM: Random Access Machines) Introdotte
DettagliRappresentazione. Rappresentazione del testo. Rappresentare numeri. Rappresentazione delle informazioni in codice binario. Caratteri.
Rappresentazione delle informazioni in codice binario Rappresentazione dell Informazione Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
DettagliLezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Marzo 2014
Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Marzo 2014 Pseudo direttive assembly Per scrivere un programma in assembly sono necessarie alcune pseudo direttive
DettagliAritmetica elementare
23 Aritmetica elementare Capitolo 2 2.1 Sistemi di numerazione............................... 23 2.1.1 Sistema decimale................................ 23 2.1.2 Sistema binario.................................
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di Numerazione
UNIVERSITÀ DEGLI STUDI DICAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Introduzione Sistemi di Numerazione Danilo Dessì danilo_dessi@unica.it Tutor
DettagliEsercitazione del 09/03/ Soluzioni
Esercitazione del 09/03/2006 - Soluzioni. Conversione binario decimale ( Rappresentazione dell Informazione Conversione in e da un numero binario, slide 0) a. 0 2? 0 2 Base 2 Si cominciano a contare le
DettagliEsercitazione del 03/03/ Soluzioni
Esercitazione del 03/03/2005 - Soluzioni. Conversione binario decimale ( Rappresentazione dell Informazione Conversione da base n a base 0, slide 0) a. 0 2? 0 2 Base 2 Si cominciano a contare le posizioni
DettagliEsercitazione del 05/03/ Soluzioni
Esercitazione del 05/03/2009 - Soluzioni. Conversione binario decimale ( Rappresentazione dell Informazione Conversione in e da un numero binario, slide 0) a. 0 2? 0 2 Base 2 La posizione della cifra all
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à
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
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
DettagliSISTEMI DI NUMERAZIONE
Rev.20/10/2014 Pag.n. 1 Indice SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI POSIZIONALI NUMERAZIONE BINARIA CONVERSIONE BINARIO-DECIMALE (Metodo del polinomio) CONVERSIONE DECIMALE-BINARIO (Metodo
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
DettagliDEC PDP8, III Generazione, '65-'75
Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code
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
DettagliLezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Marzo 2017
Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Marzo 2017 Pseudo direttive assembly Per scrivere un programma in assembly sono necessarie alcune pseudo direttive
DettagliA. Veneziani - Analisi listato con assembly in line mixato a C (C++ Builder 6) Individua se un numero e' primo e tutti i numeri primi da 1 a n
A. Veneziani - Analisi listato con assembly in line mixato a C (C++ Builder 6) Individua se un numero e' primo e tutti i numeri primi da 1 a n Il problema Il listato vuole mostrare un caso di utilizzo
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliIstruzioni di controllo del flusso
Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal
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
DettagliINPUT COMPUTER OUTPUT
1) Cos è un computer? INPUT COMPUTER OUTPUT E una macchina programmabile in grado di produrre dati in output attraverso l elaborazione di dati forniti in input 2) Cos è un programma? E l elenco di istruzioni
DettagliEsercitazione 1 del 07/10/2011
Esercitazione 1 del 07/10/2011 1. Conversione binario decimale a. 1101 2? 10 1 1 2 Base 2 La posizione della cifra all interno del numero indica il peso della cifra stessa, cioè il moltiplicatore da usare
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
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi
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
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliDispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma
Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini
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
DettagliMoltiplicazione. Divisione. Multipli e divisori
Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini
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
DettagliI sistemi di numerazione e la numerazione binaria
Ci sono solamente 10 tipi di persone nel mondo: chi comprende il sistema binario e chi no. Anonimo I sistemi di numerazione e la numerazione binaria 1 Sistema additivo e sistema posizionale Contare per
DettagliLa codifica. dell informazione
00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111
DettagliHackerando la Macchina Ridotta
La macchina ridotta La Routine di Moltiplicazione Una moltiplicazione che non voleva funzionare 27 novembre 2008 La macchina ridotta La Routine di Moltiplicazione Table of contents 1 La macchina ridotta
DettagliCodifica. Rappresentazione di numeri in memoria
Codifica Rappresentazione di numeri in memoria Rappresentazione polinomiale dei numeri Un numero decimale si rappresenta in notazione polinomiale moltiplicando ciascuna cifra a sinistra della virgola per
DettagliStruttura logica del computer (semplificata)
Struttura logica del computer (semplificata) INPUT (TASTIERA) SISTEMA OPERATIVO R OUTPUT (MONITOR) A ISTRUZIONI PROGRAMMA M ZONA DATI (variabili e costanti) 21 13 45 A B C ALU UC Unità aritmetico-logica
DettagliLezione 2. La conoscenza del mondo
Lezione 2 Analogico/Digitale Il sistema binario L aritmetica binaria La conoscenza del mondo Per poter parlare (ed elaborare) degli oggetti (nella visione scientifica) si deve poter assegnare a questi
DettagliElementi di Architettura
Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di
DettagliSistemi di numerazione
Sistemi di numerazione Numeri naturali Noi rappresentiamo i numeri con una sequenza di cifre, ad esempio 10 : 0,1,2,3,4,5,6,7,8,9, secondo una notazione posizionale. Posizionale significa che il valore
DettagliLa codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per
La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero
DettagliFondamenti di Informatica
Fondamenti di Informatica Codifica Binaria di Numeri [Sez: 2.5] Prof. De Maio Carmen cdemaio@unisa.it Binario Decimale: Riassumendo 1. Mi annoto la posizione a partire dal bit più a destra con la posizione
DettagliLa codifica dei numeri
La codifica dei numeri La rappresentazione dei numeri con il sistema decimale può essere utilizzata come spunto per definire un metodo di codifica dei numeri all interno degli elaboratori: la sequenza
DettagliLa codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale
La codifica dell informazione Il codice ASCII consente di codificare le cifre decimali da a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero 324 potrebbe essere rappresentato
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Rappresentazione dell Informazione Barbara Masucci Cosa studiamo oggi Ø Un moderno elaboratore è un sistema elettronico digitale programmabile Ø Il suo comportamento è flessibile
DettagliSomma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi
Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38
DettagliEsercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it
Esercitazioni di Reti Logiche Lezione 1 Rappresentazione dell'informazione Zeynep KIZILTAN zkiziltan@deis.unibo.it Introduzione Zeynep KIZILTAN Si pronuncia Z come la S di Rose altrimenti, si legge come
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
DettagliEsercitazione 1 del 10/10/2012
Esercitazione 1 del 10/10/2012 1. Conversione binario decimale a. 1101 2? 10 1 1 2 Base 2 La posizione della cifra all interno del numero è associata al peso della cifra stessa, cioè il moltiplicatore
DettagliINTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL. Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio.
INTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio. ESERCIZIO: realizzare un algoritmo (in linguaggio di
DettagliSistemi di numerazione
SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica
DettagliSistemi di numerazione
Istituto Tecnico Lombardo Radice Sistemi di numerazione Appunti di Informatica - Roberto De Virgilio 1 1 Regole di un sistema di numerazione I sistemi di numerazioni sono linguaggi, quindi sono un insieme
DettagliRappresentazione dell informazione
Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione
DettagliAssembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.
Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile
Dettagli