Sintassi di mov. Un istruzione (p.es. ) non può avere sorgente m e destinazione m

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sintassi di mov. Un istruzione (p.es. ) non può avere sorgente m e destinazione m"

Transcript

1 Sintassi di mov Gli operandi delle istruzioni possono essere di 3 specie principali: 1. dati immediati (sono parte dell istruzione, p.es. nei formati delle istruzioni sono indicati con imm 2. registri non di segmento, indicati nei formati delle istruzioni con r; 3. riferimenti a locazioni di memoria, diretti (offset) o indiretti (solo via registri specializzati come ); sono indicati con m Inoltre valgono le convenzioni: r/m indica un operando che può essere tanto r quanto m; 8 o 16 possono indicare la dimensione; p.es. r8 (r 8 bit); operandi combinati da un istruzione hanno uguale dimensione. Un istruzione (p.es. ) non può avere sorgente m e destinazione m Esempio. Formati di : r,r/m r/m,r r/m,imm A tali formati principali vanno aggiunti: r/m,rseg rseg,r/m dove rseg denota un registro di segmento. ) Introduzione all assembler x86 16/11/ /14

2 mov e accessi alla memoria L istruzione può avere una locazione, specificata da un offset, come sorgente o destinazione. P.es.: mov al,[10h] mov bx,[20h] mov [20H],ax ; al:= byte all offset 10H (nel segmento indicato da DS) ; bx:= word all indirizzo 20H ; (word all indirizzo 20H):= ax In realtà se l offset è specificato numericamente come sopra, l assemblatore richiede anche il segment override prefix (v. oltre). Per rifare la stessa operazione sulle celle n,n+1,... un programma pone n in, esegue l operazione, incrementa e ricomincia. P.es.: incremento dei byte in, : mov bx,200h mov cx,3h ; n.byte da incrementare incr_next: mov al,[bx] ; al:= (contenuto cella di indirizzo = bx) inc al ; incrementa al mov [bx],al ; memorizza il byte incrementato inc bx ; bx:= (indirizzo prossimo byte da inc.) dec cx ; aggiorna n.byte da incrementare jnz incr_next ; ricomincia, se ci sono ancora byte da incr. L accesso indiretto via può riguardare anche una word: mov ax,[bx] Sull 8086 solo i registri,,, permettono l accesso indiretto: mov ax,[cx] ; errore! Una sola non può operare su due locazioni di memoria: p.es. non è valida; invece si deve usare, p.es.: mov bl,[21h] mov [20H],bl Questo non è molto meno efficiente di! " #! (stessi cicli di bus). Introduzione all assembler x86 16/11/ /14

3 Istruzioni di salto I salti possono essere condizionati (da flags) o incondizionati. In un programma assembler, il target (obiettivo) del salto è l etichetta simbolica (terminata da $ % ) di una riga del programma: mov ax,3 sub bx,ax ; il flag Z diventa 1 se bx-ax fa 0, 0 altrimenti jz oltre ; salta a oltre se il flag Z è 1, altrimenti continua inc dx ; eseguita solo se il flag Z è 0... oltre: mov cx,dx ; eseguita se jz oltre trova il flag Z a 1 jz label salta a label se il flag Z è 1, jnz label salta se Z è 0; jmp label salta sempre. label = lettera seguita da (sequenza di lettere, cifre o _ ) l assemblatore tiene conto solo dei primi 31 caratteri della label Esempio: frammento di programma che (non alterando ax): pone in dx: 1 se ax=bx, 0 altrimenti. cs:0005 8BC8 mov cx,ax ; copia AX (per non perderlo) cs:0007 2BC3 sub ax,bx ; se ax=bx il flag Z va a 1 cs: jz make1 ; in tal caso salta a make1 cs:000b BA0000 mov dx,0 ; dx=0 perchè ax<>bx cs:000e EB04 jmp reset ; va a ristabilire l ax iniziale cs: nop ; inserita dall assemblatore cs:0011 BA0100 make1: mov dx,1 ; dx=1 perchè ax=bx cs:0014 8BC1 reset: mov ax,cx ; ristabilisce l ax iniziale In realtà i salti in binario contengono l incremento signed displ da dare a & ' perché prenda l offset della label cui saltare. P. es. ( ) * +, -. / perché (istruzione successiva) = (* +, -. ) Formati: 4 cc e short : opcode displ (1byte); salta di : ; ; < = > : near : opcode displ (2 byte); salta entro ; ; < = > > > Introduzione all assembler x86 16/11/ /14

4 Memorizza? A B C?? A : Semplici esempi mov bx,200h ; offset iniziale mov cx,101h ; n. byte su cui operare (inizialm. 200H-300H) un_altro: mov byte ptr [bx],0h inc bx dec cx jnz un_altro Pone in D E il n.occorrenze di? G A nelle H? I K A A -@ H L A A M H L A : mov bx,200h mov cx,28h mov dx,0 nextloc: mov ax,[bx] sub ax,127h ; 127 è l occorrenza da trovare jnz missing_count inc dx missing_count: inc bx ; due inc bx consecutivi inc bx ; portano bx alla prossima word dec cx jz done ; jz+jmp serve se nextloc dista>128 B jmp nextloc ; più ovvio e efficiente: jnz nextloc done: Pone in N E la somma K A numeri contenuti nelle word da O?? A : add_next: mov ax,0 mov bx,500h mov cx,28h add ax,[bx] inc bx inc bx dec cx jnz add_next Introduzione all assembler x86 16/11/ /14

5 Programmi assembler Un programma TASM è composto di segmenti, specificati da: nome-segmento segment ; ogni segmento può contenere dati e/o istruzioni... ; specificati in notazione assembler nome-segmento ends ; questi non possono occupare più di 64kB Durante l esecuzione del binario generato dal programma TASM, la porzione (<64K) generata da ciascun segmento del programma, sarà caricata in un distinto segmento di memoria (dalla base in su). Per ora vedremo programmi di 3 segmenti: dati, stack e codice: dati segment ; il nome dati non ha un significato specifico per TASM ; qui vengono specificati i dati usati dal programma dati ends pila segment stack ; pila non ha un significato specifico, ma stack sì ; qui viene riservato spazio per lo stack pila ends code segment ; il nome code non ha un significato specifico per TASM ; qui compaiono le istruzioni code ends La memoria per i dati si riserva con le pseudo-op (non generano istruzioni CPU): P Q (Define Byte) P R P P P S P T (Define Tenbytes). ; dx consecutivi riservano locazioni consecutive db 16h ; riserva 1 byte contenente 16H db? ; riserva 1 byte non inizializzato ( valore iniziale indeterminato) db 'z' ; riserva 1 byte, di valore pari al codice ASCII di z dw 1992D ; riserva 1 word contenente 1992D in binario signed ; forme concise di allocazione e inizializzazione: dw 1,10,100,1000 ; come dw 1 dw db 'l','a',' ','c','a','s','a' ; come db 'l' db 'a'... db 'la casa' ; come sopra, ma più breve db 10H dup('a') ; riserva 10H byte, ognuno pari al cod. ASCII di A db 20D dup(?) ; riserva 20 byte non inizializzati Introduzione all assembler x86 16/11/ /14

6 Indirizzi simbolici in assembler In assembler non si usano di solito indirizzi espliciti. P.es: mov ax,[100] ; se manca ds:, TASM intende come mov ax,100 (warning) (ma usiamo U V W X Y Z [ \ ] ] ^ come forma simbolica dell istruzione _ \ ] ] ] \ ) Invece, si attribuiscono ai dati identificatori simbolici o nomi; nelle istruzioni il nome prende il posto dell indirizzo di un dato. Assembler Simbolico Binario yes_msg db 'Y' yes_msg prende la loc mov al,yes_msg mov al,[0013] 0005 A01300 mov yes_msg, S mov byte ptr [0013], C TASM traduce id offset nel codice binario contando i byte occupati da dati e istruzioni precedenti id. Nel nome qualificato (completo) di un dato figura anche il segmento: data segment x dw 1234H data ends... mov data:x,0 ; equivale a mov x,0 Ma ` deve essere unico: un solo dato in un solo segmento. In una define multipla di dati, il nome individua l offset del 1 dato: dec31_msg db 'buon anno' mov al,dec31_msg ; pone 'b' in al Con l operatore a b b c d e l offset di un nome si può usare come dato: x dw 1234 ; sia 8a90 l'offset di x mov ax,x ; mov ax,[8a90] (pone 1234 in ax) mov ax,offset x ; mov ax,8a90 Introduzione all assembler x86 16/11/ /14

7 Istruzioni in forma simbolica vs. assembler Come visto, ogni istruzione x86 può essere trascritta in tre forme: binaria simbolica: - opcode e operandi registri in formato mnemonico, - operandi offset e n.segmento in formato numerico; p.es.: mov [0120H], ax jmp +2 assembler: come simbolica, ma offset e n.segmento compaiono come identificatori: mov x,ax ; l assembler tradurrà p.es. in mov [0120H],ax jmp out ; l assembler tradurrà p.es. in jmp +2 Differenza tra istruzione simbolica (f g h +i ) e assembler (f g h j k l ): la istruzione simbolica, anche da sola, individua univocamente la corrispondente binaria (f g h m i n o p i ) la istruzione assembler deve stare in un programma completo (per calcolare gli offset) per essere tradotta in binario. Introduzione all assembler x86 16/11/ /14

8 Assemblaggio di identificatori TASM assembla senza altra informazione istruzioni con identificatori, purché dotate di segment override prefix. P.es.: Ma il codice data1 segment F000*(??) z db 0f000h dup(?) 3 F A x1 dw 978ah 4 F002 data1 ends data2 segment ABCD x2 dw 0ABCDH data2 ends code segment B 1E F000r mov bx,ds:x : 8B 1E 0000r mov bx,es:x code ends code segment B 1E F000r mov bx,x : 8B 1E 0000r mov bx,es:x code ends causa l errore (riga 9): can t address with currently assumed segment registers Problemi: 1. TASM sospetta (correttamente) che q r non punti segmento di s t 2. basta però il prefisso q r u per ingannarlo! Soluzioni: 1. pseudo-op v r r w x y 2. chi usa q r come prefisso dovrebbe ricordarsi di dare a q r un valore opportuno Introduzione all assembler x86 16/11/ /14

9 Pseudo-op assume e gestione dei segment register Motivazione della pseudo-op z { { } ~ : un istruzione sul dato x dichiarato nel segmento N ha senso solo se un registro di segmento r{ punta a N (contiene l indirizzo di N) per assicurare ciò a TASM, il programmatore deve (pena l errore can t address with currently assumed segment registers): 1. dare all istruzione il segment override prefix r{ (v. p. 7), o 2. dichiarare z { { } ~ r{ N = assumi (supponi) che r{ punta a N NB: (1) o (2) non mettono automaticamente in r{ l indirizzo di N, ma dovrebbero servire a ricordare al programmatore di farlo! Esempi data1 segment z db 0f000h dup(?) x1 dw 978ah ; offset di x1: f000 data1 ends data2 segment x2 dw 0ABCDH ; offset di x2: 0000 data2 ends assume ds:data1 ; caso (1); se mancasse assume ds:data1 mov bx,x1 ; qui TASM segnalerebbe l errore can t address... mov bx,es:x2 ; caso (2); se mancasse es: TASM segnalerebbe l errore Ciò non dà errori TASM, ma è scorretto: va completato come ricordano ƒ e mov ax,data1 ; dopo TASM, TLINK traduce data1 in indirizzo di segmento mov ds,ax ; data1 ax ds perché non l istruzione mov ds,dato assume ds:data1 ; assicura a TASM ds=data1 e ricorda di farlo davvero mov bx,x1 ; TASM assembla in 8b1e00f0=mov bx,[f000] mov ax,data2 ; che data2 va posto in es... mov es,ax ; viene ricordato dal prefisso es: nel prossimo rigo mov bx,es:x2 ; TASM assembla in 268b1e0000=mov bx,es:[0] NB: l override prefix ds: può servire per (2) sopra, ma non viene assemblato (inutile): assume ds:nothing ; annulla ogni assume riguardo a ds mov al,ds:z ; ds: serve per (2), ma TASM a00000=mov al,[0] Introduzione all assembler x86 16/11/ /14

10 Schema di programma assembler data data segment... ; dichiarazioni dei dati ends pila segment stack dw 100H dup(?) ; o altra quantità di memoria richiesta pila ends code segment assume ds:data,ss:pila,cs:code start: mov ax,data ; carica (via ax) l indirizzo del segmento data mov ds,ax ; in ds, reg. di segmento assunto per data... ; istruzioni del programma mov ah,4ch ; pone in ah il numero del servizio DOS che, int 21h ; invocato con int 21 riporterà al DOS code ends end start ; definisce l entry point (1 a istruzione da eseguire) Osservazioni la direttiva ˆ indirizzo-simbolico definisce indirizzo-simbolico come entry point e contrassegna la fine del programma (ciò che segue nel file contenente il programma viene ignorato) perché il programma sia eseguibile, deve avere un entry point i nomi dei Š Œ possono fare da operandi per le istruzioni; nell eseguibile saranno sostituiti dagli indirizzi dei segmenti di memoria scelti per ciascun Š Œ del programma l indirizzo di ˆ Œ va caricato in Ž esplicitamente (vedi start:) quando il programma assemblato viene eseguito, il DOS carica automaticamente in e gli indirizzi dei segmenti ˆ e ; i valori finali di e devono riportare il sistema sotto il controllo del DOS: ciò si ottiene con: š e Œ œ ž. Introduzione all assembler x86 16/11/ /14

11 Generazione di un Ÿ Ÿ da un programma assembler Se il programma assembler risiede in un solo file (sorgente) : 1. assemblaggio in un file oggetto ( ) con l assemblatore TASM; p.es. ª «o ( ª «) genera ª «2. linking del file oggetto in un file eseguibile, con il linker TLINK; p.es. ª «(o ª «) genera ª «± ² ±. Un programma complesso è in genere suddiviso in più file ; ciascuno può definire segmenti distinti da quelli degli altri e fare riferimento a dati o etichette esterni (definiti in altri file). TASM assembla ogni in un senza consultare gli altri ; ciò fa risparmiare tempo durante lo sviluppo di un programma. Quindi TLINK non può solo concatenare gli in ± ² ± ; deve anche: risolvere i riferimenti esterni scegliere un segmento di memoria per ogni ± ± ± ³ Esempio. Mappa del codice generato da TLINK Start Stop Length Name NB: indirizzi Start/Stop a 20 bit 00000H 00001H 00002H DATA dati (2 byte) nel segmento H 0002FH 00020H PILA pila (32 byte) nel segmento H 00038H 00009H CODE istruzioni (9 byte) nel segmento 0003 Program entry point at 0003:0000 NB: i segmenti di memoria di 64K scelti si sovrappongono, ma non le loro parti veramente occupate. Il DOS, poi, nel caricare il file µ, trasla gli indirizzi di segmento scelti da TLINK (marcati come tali nel file) in memoria non occupata; p. es. nel caso sopra,, potrebbero venire caricati come ¹ º º, ¹ º», ¹ º ¹ Inoltre il DOS pone in ¼ ½ il segmento dell entry point, e in ½ ½ quello marcato ½ ¾ ¼ À nel sorgente, ma a fissare Á ½ correttamente deve provvedere il programma (v. p.10). Introduzione all assembler x86 16/11/ /14

12 Accesso a indirizzi specifici Anche se TLINK/DOS scelgono dove caricare il programma, il programmatore assembler può accedere a qualsiasi segmento S: mov ax,9ff0h mov ds,ax mov [10],bx ; da qui gli offset saranno nel segmento 9ff0 ; 9ff0:[10] := bx Ma il programmatore deve sapere cosa fa; l esempio ha senso se il segmento Â Ã Ã Ä è libero, oppure, p.es., si vogliono modificare strutture dati DOS situate in Â Ã Ã Ä Å Æ Ç Ä È Introduzione all assembler x86 16/11/ /14

13 Ø Ù Ô Servizi e funzioni DOS Il DOS fornisce servizi software a programmi che li invocano: caricando i registri con valori opportuni eseguendo l'istruzione É Ê Ë Ì Í Î Ï completato il servizio l esecuzione riprende subito dopo la É Ê Ë Il servizio è individuato dal byte Í Î e dal contenuto di alcuni registri Funzioni: servizi richiesti con Ð Ñ Ï ; Ò Ó contiene il n. della funzione. Es.: Õ Ö Õ Ö Ú Û Ü Ý Õ Þ ß Ú Û Ü Ý Õ Þ à á ß â ã â ä N. funzione Descrizione Descrizione estesa Output su Scrive il carattere il cui ASCII è in schermo Output su seriale Stampa Invia alla stampante Output stringa Scrive la sequenza di caratteri nei byte,... finché trova (non scritto) Ritorno a DOS Termina il programma chiamante e torna a DOS Esempi (output): dec31_msg db 'buon anno$'... mov dl,'e' mov ah,2 int 21H ; scrive 'e' sub dl,20h int 21H ; scrive 'E' (NB: ASCII('E') = ASCII('e')-20H) mov dl,0dh int 21H ; scrive un CR (Carriage Return) mov dl,0ah int 21H ; scrive LF (Line Feed): per andare a capo servono CR e LF mov dx,offset dec31_msg ; NB: dec31_msg deve essere nel segm. Ú Û mov ah,9 int 21H Introduzione all assembler x86 16/11/ /14

14 è é ö å å å Funzioni DOS: input æ ç æ ê ë ì í î ï ð ñ ò ó ê ë ì í î ï ô ð ê ë ì í î ï ô õ ð ò ó ê ë ì í î ï ô õ ô æ ç ø ò å ù ú ù è ù é ë û ü ý þ ÿ þ ý æ ç þ õ N. funzione Descrizione Descrizione estesa input da attende la pressione di un tasto, ne pone l'ascii in e ne tastiera causa l'eco sullo schermo; può essere interrotto con CTRL-BREAK input come ma senza echo e non si può interrompere input come ma si può interrompere con CTRL BREAK Input stringa se N, accetta k (<N) caratteri + e pone k in, il 1 car. in,..., in kð stato tastiera se un carattere di input è disponibile, pone a se no a clear input Svuota il buffer di input e esegue la funzione tra da (è come un altro ) Esempi: mov ah,1 inkey: int 21H ; leggi un carattere sub al,'x' jnz inkey ; termina se si legge una x msg db 'hai scritto:',0dh,0ah,'$' inbuf db 4 dup(?),0dh,0ah,'$' mov cx,4 ; n. caratteri da leggere mov bx,offset inbuf ; leggeremo in inbuf mov ah,7 inkey1: int 21H ; legge senza eco un carattere in al mov [bx],al ; copialo dentro inbuf inc bx dec cx jnz inkey1 ; ricomincia (esci dopo aver letto 4 caratteri) mov ah,9 mov dx,offset msg int 21H ; scrivi msg mov dx,offset inbuf ; scrivi i caratteri letti int 21H inloop: mov ah,0bh int 21H sub al,0ffh jnz inloop ; esce appena si preme un tasto Introduzione all assembler x86 16/11/ /14

mov e accessi alla memoria

mov e accessi alla memoria " mov e accessi alla memoria L istruzione può avere una locazione specificata da un offset come sorgente o destinazione Pes mov al[0h] al= byte all offset 0H (nel segmento indicato da DS) mov bx[20h] bx=

Dettagli

Confronti e salti condizionati

Confronti 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

Dettagli

! " # $ % & ' '! (! ) * + % + $ + +, -. /! < 6 : ;

!  # $ % & ' '! (! ) * + % + $ + +, -. /! < 6 : ; ! " # $ % & ' '! (! ) * + % + $ + +, -. /! 0 + 1 1 2 3 4 5 6 7 8 9 6 : ; ! " # $ % & ' '! (! ) * + % + $ + +, -. /! 0 + 1 1 2 3 4 5 6 7 8 < 6 : ; = > >? @ A B? > C D B? E F G H I J K L J M N O J P Q R

Dettagli

Interazione con il DOS e il BIOS

Interazione 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

Dettagli

PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO

PASSI 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

Dettagli

Famiglia x86. Linguaggio Assembler

Famiglia x86. Linguaggio Assembler Famiglia x86 8086-88, 80186, 80286, 80386-386SX, 80486DX-SX, Pentium,P6 Linguaggio Assembler Programmazione in linguaggi alto livello (HLL), p. es. Pascal: + livello di astrazione (istruzioni più potenti)

Dettagli

& ' ( ) * +, - (. ' ) ) - / *, - ( 0 - ) - / ' / : 9 5 ; < = >? A < =? ; 7 B ; C 6 D > E : A < F 9 : A 5 G

& ' ( ) * +, - (. ' ) ) - / *, - ( 0 - ) - / ' / : 9 5 ; < = >? A < =? ; 7 B ; C 6 D > E : A < F 9 : A 5 G & ' ( ) * +, - (. ' ) ) - / *, - ( 0 - ) - / ' 1 2 3 / 4 5 6 7 8 5 5 8 9 : 9 5 ; < = >?

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO 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,

Dettagli

Programmazione in linguaggio assembly per architetture Intel 8088

Programmazione 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

Introduzione. Architettura

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

Dettagli

; ; Definizione costanti

; ; 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

Dettagli

not ah ; ah = F7h (247) perche' il complemento a 1 di 8 ( )

not 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

Dettagli

Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086)

Breve 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

Dettagli

Programmazione Assembly per 8088: Esercizi svolti

Programmazione 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

Dettagli

La rappresentazione dei caratteri

La rappresentazione dei caratteri Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate La rappresentazione dei caratteri Necessità della rappresentazione dei caratteri Un calcolatore che fosse unicamente in

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO 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

Dettagli

Esercizi 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 ) 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

Dettagli

ESERCIZIO: 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 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

Dettagli

jne 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

jne 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

Dettagli

Architettura degli elaboratori

Architettura degli elaboratori Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Programmazione in assembly MIPS Marco Tarini Dipartimento di Scienze Teoriche e Applicate

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il 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

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il 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

Dettagli

LA CPU INTEL Vantaggi dei programmi Assembly

LA 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;

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Introduzione al linguaggio assembly

Introduzione al linguaggio assembly Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Riepilogo PC R 0 MA R 1 R 2 R 3 IR MB read memoria O 1 O 2 op ALU

Dettagli

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A. < < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte

Dettagli

L'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 -

L'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:

Dettagli

Corso di Architettura (Prof. Scarano) 10/05/2002

Corso di Architettura (Prof. Scarano) 10/05/2002 Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di

Dettagli

Assembly. Modello x86

Assembly. 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

Dettagli

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch 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

Dettagli

iafelice at cs(dot)unibo(dot)it

iafelice 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

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi 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

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

CPU. 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

Dettagli

Assembler Intel 80x86: Struttura di un programma e Direttive

Assembler Intel 80x86: Struttura di un programma e Direttive Assembler Intel 80x86: Struttura di un programma e Direttive Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin 1 Istruzioni e direttive Formato generale dei comandi: [nome] codice operazione

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni 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

Dettagli

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU: Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi 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

Dettagli

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario La struttura delle istruzioni elementari: il linguaggio Macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul

Dettagli

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

Dettagli

Introduzione al linguaggio assembly MC68000

Introduzione 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

Dettagli

Esercitazione n. 3. Dott. Salvatore Pontarelli

Esercitazione n. 3. Dott. Salvatore Pontarelli Esercitazione n. 3 Dott. Salvatore Pontarelli Struttura di un modulo Assembly Assembly è il linguaggio che l ARM assembler (armasm) legge per produrre il codice oggetto. può essere: ARM assembly language

Dettagli

Il linguaggio assembly

Il 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

Dettagli

ISA e linguaggio assembler

ISA e linguaggio assembler ISA e linguaggio assembler Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/39 Introduzione

Dettagli

Linguaggi e moduli. Dott. Franco Liberati

Linguaggi e moduli. Dott. Franco Liberati (canale A-D) A Linguaggi e moduli Dott. Franco Liberati Linguaggi di programmazione Compilatore Assemblatore Linker (collegatore) LINKER COMPILATORE ASSEMBLATORE LINGUAGGI DI PROGRAMMAZIONE Linguaggio

Dettagli

COMUNE DI VOLVERA. Provincia di Torino DETERMINAZIONE DEL RESPONSABILE DEI SERVIZI FINANZIARI UFFICIO RAGIONERIA

COMUNE DI VOLVERA. Provincia di Torino DETERMINAZIONE DEL RESPONSABILE DEI SERVIZI FINANZIARI UFFICIO RAGIONERIA ,,, ,,,,, è,,,,,,,,, è, à, è ,, è,,,,,,,, à,,,,,, à à, ì,,,, à, à à,,,, ,,, à,,, à à,,,, ,,,, } &, @ } @ &, @ } &, @ Œ Œ &, @ } Ž @ & @ & @ } } } @ & & & @ & & & @ Ž Ž @ &, š &, @ œ œ Ž @ &, š &, š @

Dettagli

Modi di indirizzamento

Modi di indirizzamento Architettura degli elaboratori Modi di indirizzamento ARGOMENTI DELLA LEZIONE Definizione Indirizzamenti diretti: immediato, assoluto, a registro Indirizzamenti indiretti: indiretto con registro, con spiazzamento,

Dettagli

Architettura di una CPU

Architettura 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

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura 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

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

1.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 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

Dettagli

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15 LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15 Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 2005-2006 L'INDIRIZZAMENTO NEL PROCESSORE MC 68000

Dettagli

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma

Dettagli

CPUSim. Laboratorio 30/11/2016

CPUSim. Laboratorio 30/11/2016 CPUSim Laboratorio 30/11/2016 Tommaso Padoan e-mail: padoan@math.unipd.it CPUsim Scaricare il simulatore: www.math.unipd.it/~sperduti/architettura1.html scorrere fino a sezione Simulatori, aprire la pagina

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I A.A. 2011-2012 Modi di indirizzamento del processore MC68000 (parte prima) Lezione 21 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Dettagli

Istruzioni di trasferimento dati

Istruzioni 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:

Dettagli

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente

Dettagli

L architettura del calcolatore (Seconda parte)

L architettura del calcolatore (Seconda parte) L architettura del calcolatore (Seconda parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE: RICHIAMI

Dettagli

Il linguaggio Assembly

Il linguaggio Assembly Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le 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):

Dettagli

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)

Le procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I) Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo

Dettagli

Elementi di Architettura

Elementi 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

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

I CARATTERI E LE STRINGHE

I CARATTERI E LE STRINGHE I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard

Dettagli

Architetture dei Sistemi Elettronici

Architetture 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

Dettagli

Indirizzamento, lettura e scrittura della memoria

Indirizzamento, lettura e scrittura della memoria Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Indirizzamento, lettura e scrittura della memoria Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

Fondamenti di Informatica B

Fondamenti 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

Dettagli

Modi di indirizzamento parte 1. Modello di programmazione del processore MC68000

Modi 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

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio 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

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi 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

Loro Sedi. Oggetto: Accordo Nazionale 31/01/ Modifiche Contributo Minimo APE.

Loro Sedi. Oggetto: Accordo Nazionale 31/01/ Modifiche Contributo Minimo APE. Udine, 13 febbraio 2018 Circ. congiunta n. 1/2018 Alle imprese iscritte Loro Sedi Ai Consulenti del Lavoro Loro Sedi Oggetto: Accordo Nazionale 31/01/2018 - Modifiche Contributo Minimo APE. Con accordo

Dettagli

Processore Danilo Dessì. Architettura degli Elaboratori.

Processore 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

Dettagli

Modi di indirizzamento del processore MC68000 parte 1

Modi 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

Dettagli

Vari modi di specificare l indirizzo degli operandi

Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Vari modi di specificare l indirizzo degli operandi Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 Indirizzamento immediato L operando è

Dettagli

Il linguaggio macchina

Il 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

Dettagli

Assembly IV Le procedure

Assembly IV Le procedure rchitettura degli Elaboratori e delle Reti Lezione 14 ssembly IV Le procedure Proff.. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:

Dettagli

Esercizi sul linguaggio Assembler

Esercizi sul linguaggio Assembler Esercizi sul linguaggio Assembler Corso di Laurea di Ing. Gestionale e di Ing. delle Telecomunicazioni A.A. 2007-2008 1. A partire dalla locazione di nome simbolico CIFRA sono memorizzate le codifiche

Dettagli

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata

Dettagli

SISTEMA DI ELABORAZIONE

SISTEMA DI ELABORAZIONE SISTEMA DI ELABORAZIONE Una macchina M capace di eseguire programmi scritti in un linguaggio L adeguato DATI P(L) L M Osservazioni: M e' funzionalmente definita da L (L->M) Se L->M e L->M', allora M e'

Dettagli

15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio

15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio 15 April 2011 05 LABORATORIO 04 PROCEDURE STACK CHIAMATA A PROCEDURE I. Frosio 1 SOMMARIO Procedure Stack Chiamata a procedure 2 PERCHÈ LE PROCEDURE? 15 April 2011 Main Proc3 Proc2 Proc1 Programmazione

Dettagli

Assembler. In verde sono evidenziati i comandi del debug. Attiva la scrittura di istruzioni assembler nella locazione 0100.

Assembler. In verde sono evidenziati i comandi del debug. Attiva la scrittura di istruzioni assembler nella locazione 0100. 2010-02-16- pagina 1 di 6 Assembler Quando si installa un programma si creano dei file che sono memorizzati nell hard-disk del PC. Quando si lancia il programma parte di questi file è copiata nella RAM

Dettagli

Istruzioni di modifica della sequenza di elaborazione

Istruzioni di modifica della sequenza di elaborazione Istruzioni di modifica della sequenza di elaborazione Permettono di modificare la sequenza di esecuzione delle istruzioni di un programma, normalmente controllata dal meccanismo automatico di avanzamento

Dettagli

Sistemi Operativi. ASSEMBLER per Minix Lez. 17

Sistemi 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

Dettagli

Indirizzamento, lettura e scrittura della memoria

Indirizzamento, lettura e scrittura della memoria Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2018-2019 Indirizzamento, lettura e scrittura della memoria Turno A Nicola Basilico Dipartimento di Informatica Via Celoria 18-20133

Dettagli

Struttura di programmi MAL Elementi lessicali

Struttura di programmi MAL Elementi lessicali Elementi lessicali Ogni microistruzione è definita su una linea di programma Le linee vuote vengono ignorate Le linee con solo commenti vengono ignorate Il carattere di fine linea (RETURN ENTER INVIO)

Dettagli

Memoria: lettura, scrittura e indirizzamento

Memoria: lettura, scrittura e indirizzamento Memoria: lettura, scrittura e indirizzamento Ultimo aggiornamento: 27/3/2015 Università degli studi di Milano matteo.re@unimi.it https://homes.di.unimi.it/re/arch2-lab-2015-2016.html Organizzazione della

Dettagli

LA TASTIERA. Fai click sul tasto che ti interessa per la guida completa. Tabella ASCII. Tasti Speciali

LA TASTIERA. Fai click sul tasto che ti interessa per la guida completa. Tabella ASCII. Tasti Speciali LA TASTIERA Fai click sul tasto che ti interessa per la guida completa Tabella ASCII Tasti Speciali I tasti quindi non si può dire esattamente a che cosa serve uno o l altro perché ogni tasto ha una funzione

Dettagli

Parte 3. Linguaggio Macchina e Assembler

Parte 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

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

Dettagli

Linguaggio macchina e register file

Linguaggio macchina e register file Linguaggio macchina e register file Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Modi di indirizzamento

Modi di indirizzamento Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando

Dettagli

Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Il simulatore MARS - Le strutture di controllo - Esempi

Dettagli

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione ESERCITAZIONE 8 Sommario Unità centrale di elaborazione Meccanismo di interruzione CPU-Memoria Architettura di una CPU Linguaggio macchina Modi di indirizzamento 1. Unità centrale di elaborazione L unità

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura 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

Dettagli

Sistemi a microprocessore

Sistemi a microprocessore Sistemi a microprocessore Programma: Segnali analogici e digitali Uso di segnali digitali per la rappresentazione dei numeri interi La memoria e la CPU I programmi in linguaggio macchina La connessione

Dettagli

CORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088

CORSO 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

Dettagli