Il processore PD32. Set Istruzioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il processore PD32. Set Istruzioni"

Transcript

1 Il processore PD32 Set Istruzioni

2 Set Istruzioni L istruzione (almeno 32 bit) è divisa in più campi codice operativo specifica operazione (classe e tipo) parte indirizzo specifica modalità di uso deidati registri interni registri di memoria (più modalità) dati immediati (ad es. costanti): memorizzati nei byte successivi nome simbolico

3 Set Istruzioni Sono organizzate in 8 classi (3 bit codice operativo specificano la classe) Movimento dati Aritmetiche (somma e sottrazione) Tipo Logico Rotazione e shift Operazioni sui bit di stato controllo del programma controllo della macchina ingresso/uscita

4 Formato istruzioni int i,j i = i + j Programma compilatore Codice mnemonico Tipo di dato L (longword) W (word) B (byte) ADDW R2, R1 Sorgente Destinazione Linguaggio Assembly (R2+R1 => R1) Programma assemblatore (Assembler) Classe Tipo K pos. I/O L-W-B Modo Sg Sorg. Modo Ds Dest Linguaggio Macchina (PD 32 ogni istruzione è rappresentata con 32 bit)

5 Formato istruzioni Ogni istruzione (che non utilizza l indirizzamento immediato) è lunga 32 bit (4 byte) ed è composta da 9 campi Alcune istruzioni ignorano alcuni campi CLASSE TIPO DATO K I/O S MODO S SORG MODO D DEST Codice Operativo Specifica il tipo d istruzione Operandi Specifica i dati su cui operare

6 Campo n.bits Commento Classe Indica la classe di istruzione (movimento dati, rotazione e shift, 3 aritmetiche ) Tipo Al''interno della classe viene indicato quale tra le operazioni disponibili 5 deve essere eseguita dato k Campo contenente un dato utilizzato nelle istruzioni di rotazione e shift e 8 nelle istruzioni di I/O I/O Campo utilizzato nelle istruzioni di I/O, codifica il modo con cui l'indirizzo 2 del device può essere recuperato s 2 Indica il formato del dato che deve essere trattato dall'operazione. modo s 3 Indica il modo di indirizzamento dell'operando sorgente. sorg In caso di indirizzamento diretto a registro, indiretto a registro, con 3 predecremento e con postincremento indica uno degli otto registri di uso generale R0-R7 modo d 3 Indica il modo di indirizzamento dell'operando destinazione. dest In caso di indirizzamento diretto a registro, indiretto a registro, con 3 predecremento e con postincremento indica uno degli otto registri di uso generale R0-R7

7 Alcune istruzioni Assembler MOVB R1,R2 - copia il contenuto del primo byte di R1 in R2 MOVW R1,(R2) - copia il contenuto dei primi 2 byte di R1 nei due byte di memoria il cui indirizzo iniziale memorizzato in R2 MOVL (R1),R2 - copia in R2 il contenuto dei 4 bytes di memoria il cui indirizzo è specificato in R1 nel seguito s indica una lettera tra B (byte), W (word, 2 byte) L (long word, 4 byte) SUBs R1,R2 - sottrai il contenuto del primo, dei primi 2 o i 4 bytes del registro R1 con il corrispondente in R2, il risultato memorizzalo in R2 ADDs #d,r2 - addiziona al contenuto del registro R2 la quantità d di dimensione s

8 Esempi di traduzione istruzioni assembler in linguaggio macchina MOVB R4,R3 Codice mnemonico formato dato campo s operandi e modo indiriz. operandi CLASSE TIPO byte diretto con registro Modo sorg Modo dest

9 Esempi di traduzione istruzioni assembler in linguaggio macchina (cont.) ADD B #20,R3 Codice mnemonico CLASSE TIPO formato dato campo s byte Indirizzamento Immediato (vedi byte successivo) operandi e modo indiriz. operandi Indirizzamento diretto con registro

10 Ciclo Istruzione Execute Nel PD32 la fase di esecuzione di un ciclo istruzione consiste in un numero variabile di cicli macchina dipendente dal numero di accessi in memoria necessari (oltre al fetch) Entrambi gli operandi sono contenuti in registri interni del PD32 (indirizzamento a registro) ADDW R1, R2 1) R1 -> Temp1 2) R2 -> Temp2 3) ALU-OUT (Temp1+Temp2) -> R2 (nessun accesso a memoria esterna) Uno degli operandi (0x20) è definito nell istruzione- L assembler lo memorizza nella locazione di memoria esterna immediatamente successiva a quella contenente l istruzione (indirizzamento immediato) ADDW #20h, R2 1) PC -> MAR 2) (MAR) -> MDR, R2 -> Temp1 3) MDR -> Temp2, PC + 2 -> PC 4) ALU-OUT (Temp1+Temp2) -> R2 (1 accesso a memoria esterna)

11 Un esempio di programma assembler Saldo (S) nelle 2 celle puntate da R5 (dato di una parola) Tre versamenti (V1,V2,V3) immagazzinati nelle tre coppie di celle consecutive puntate da R4 Due prelievi (P1,P2) immagazzinati nelle due coppie di celle puntate da R3 S=S+V1+V2+V3-P1-P2

12 Un esempio di programma assembler PC 1 MOVW (R5),R0 ; R0:=S PC+4 2 ADDW (R4),R0 ;R0:=R0+V1 PC+8 3 ADDB #2,R4 ;punta al prossimo versamento PC+13 4 ADDW (R4),R0 ;R0:=R0+V2 PC+17 5 ADDB #2,R4 ;punta al prossimo versamento PC+22 6 ADDW (R4),R0 ;R0:=R0+V3 PC+26 7 SUBW (R3),R0 ;R0:=R0-P1 PC+30 8 ADDB #2,R3 ;punta al prossimo prelievo PC+35 9 SUBW (R3),R0 ;R0:=R0-P2 PC MOVW R0,(R5) ;S:=R0

13 Altre istruzioni JMP JZ HALT MOVB #dato,r1 SALTO INCONDIZIONATO SALTO CONDIZIONATO FINE PROGRAMMA ESTENSIONE SEGNO #dato sui rimanenti bits di R1 MOVB #3,R4 R4 = 00h 00h 00h MOVB #-1,R5 R5 = FFh FFh FFh

14 Un programma per l aggiornamento del saldo di un conto bancario

15 Ipotesi Tutti i dati sono a 16 bit (word) Il saldo iniziale è memorizzato nella coppia di celle di indirizzo 00001B00 I movimenti (versamenti e prelievi) sono memorizzati in posizioni consecutive di memoria, a partire da quella di indirizzo 00001F00 I movimenti non hanno un ordine particolare: i versamenti sono positivi e i prelievi negativi Non è noto il numero dei movimenti effettuati L ultimo movimento è seguito da una posizione di memoria contente il numero 0

16 Una prima soluzione

17 START R5 punta al Saldo R4 punta al I vers. R0 memorizza il Saldo R1 mem. il versamento R1=0? si R5:=1B00 R4:=1F00 R0:=(R5) R1:=(R4) R1:=R1+0 JZ no R0:=R1+R0 R4:=2+R4 Somma al saldo il vers. R4 punta al vers. succ. (R5):=R0 HALT ora in memoria c è il saldo aggiornato

18 Il codice ASSEMBLER INDIRIZZO CODICE COMMENTO 0400 MOVL #1B00h,R5 ;inizializza il registro R MOVL #1F00h,R4 ;inizializza il registro R MOVW (R5),R0 ;carica in R0 il saldo attuale 0414 MOVW (R4),R1 ;carica in R1 il movimento puntato da R ADDB #0,R1 ;aggiorna il registro SR 041D JZ 0436h ;salta a memorizza il nuovo saldo se non vi sono altri movimenti 0425 ADDW R1,R0 ;aggiungi al saldo il movimento in R ADDB #2,R4 ;incrementa il puntatore ai movimenti 042E JMP 0414h ;procedi con un nuovo movimento 0436 MOVW R0,(R5) ;memorizza il nuovo saldo 043A HALT

19 Una soluzione equivalente

20 START R5 punta al Saldo R4 punta al I vers. R0 memorizza il Saldo Somma al saldo il vers. scrivi il saldo in memoria R4 punta al vers. succ. Somma al saldo il vers. confronta il saldo attuale con il saldo in mem. R5:=1B00 R4:=1F00 R0:=(R5) R0:=R0+(R4) (R5):=R0 R4:=2+R4 R0:=(R4)+R0 R1:=R0-(R5) JNZ no HALT si

21 Assemblatore Traduce il codice scritto in assembler in codice macchina Ad ogni istruzione macchina è associato un codice mnemonico E possibile usare riferimenti simbolici E possibile inserire delle direttive che indicano all assemblatore come procedere nella traduzione Ad esempio, ORG specifica dove sarà caricato il programma una volta tradotto. Questo serve a tradurre i riferimenti simbolici assoluti nel codice sorgente. Ad esempio, CODE.. END indicano l inizio e la fine della sezione codice.

22 Esempio MOVB #0,R1 Significato: Poni a 0 il byte meno signif. di R1 Codice assembly MOVB #0, R1 Tipo (byte) Sorgente Destinazione ORG 400H CODE movb #0,R1 HALT END 400 istruzione operando 01H 02H 00H 20H 00H

23 Contenuto memoria ??? 00??????? Prima istruzione Operando Seconda istruzione 0x : : 0000.

24 Esempio MOVB #0,R1 Indirizzo Iniziale

25 Altro esempio Il codice sarà caricato in posizione 0x600 ORG 600H CODE movw r2, r1 movb #-2, r0 HALT END FE Rappresentazione compl. a 2

26 Modi di indirizzamento Stabiliscono la posizione degli operandi Possono trovarsi nei registri (R0..R7) In memoria di lavoro (la posizione è stabilita dall indirizzo di memoria in cui è memorizzato il valore) Effective Address (EA): la posizione di un operando in memoria EA può essere un registro o una locazione di memoria Il valore di EA deve essere noto al tempo di esecuzione del programma (run-time); in generale non è noto al momento della sua scrittura (compiletime). Ciò consente di ottenere una grande flessibilità (rilocazione del codice)

27 Modi diretti Modi di indirizzamento Diretto con registro Immediato Assoluto Modi indiretti Indiretto con registro Indiretto con spiazzamento Relativo Indiretto con predecremento Indiretto con postdecremento

28 EA=Ri Indirizzamento a registro Esempio: MOVL R1,R5 (significato: R1->R5)

29 Indirizzamento immediato Il dato si trova in memoria immediatamente dopo l istruzione Esempio: MOVL #0,R5 (significato: poni 0 in R5) il dato è memorizzato nei 4 byte successivi al codice dell istruzione

30 Indirizzamento assoluto MOVL R1,1280H (assegna il valore di R1 alla cella di memoria di indirizzo 1280H) 1280H, è memorizzato dopo l istruzione ed è riferito da PC dopo che è stato incrementato) Effective address = 1280H

31 Indirizzamento relativo Usato nei salti, permette di aggiornare il PC con valori differenti di semplici incrementi. JMP LABEL(PC) (metti nel PC quanto ottenuto dalla somma del contenuto della locazione il cui indirizzo è dato da LABEL con il valore corrente del PC)

32 Indirizzamento relativo JMP LABEL(PC) (metti nel PC quanto ottenuto dalla somma del contenuto della locazione il cui indirizzo è dato da LABEL con il valore corrente del PC) Label indica lo scostamento rispetto al valore corrente di PC se il programma viene spostato in una diversa zona di memoria cambia il valore di PC in due diverse esecuzioni MA lo spostamento relativo non cambia aritmetica in complemento a due (per permettere salti in avanti e indietro)

33 Indirizzamento indiretto con registro Il registro contiene l indirizzo dell operando (corrisponde alla nozione di puntatore nei linguaggi di programmazione) MOVL (R5),R1 (sposta in R1 in contenuto della locazione di mem. il cui indirizzo è contenuto in R5)

34 Indirizzamento indiretto con registro se si aggiorna il registro cambia l indirizzo di memoria esempio inserendo in un ciclo il frammento di istruzioni ADDL (R2),R1 ADDB #4, R2 - somma a R1 il contenuto della locazione di mem. il cui indirizzo è contenuto in R2) - somma 4 a R2 permette di sommare a R1 i contenuti di locazine di memoria successive - domanda perché somma 4 e non 1 o 2?

35 Indirizzamento indiretto con registro e con predecremento Il registro, opportunamente decrementato, contiene l indirizzo dell operando Esempio: MOVL R1,-(R7) (sposta nella locazione il cui indirizzo è pari al contenuto in R7 meno 4 ciò che è memorizzato in R1)

36 Indirizzamento indiretto con registro e con postincremento Il registro contiene l indirizzo dell operando, una volta acceduto la memoria il registro viene opportunamente incrementato Esempio: MOVL (R7)+,R1 (sposta in R1 quanto memorizzato nella locazione il cui indirizzo è pari al contenuto in R7, dopodiché incrementare di 4 ciò che è memorizzato in R7)

37 Indirizzamento con spiazzamento L indirizzo effettivo dell operando è la somma di un valore base (mem. in un reg.) con il valore di spiazzamento Esempio: MOVL D(R0),R1 (significato: sposta in R1 il contenuto della cella con indirizzo D+R0)

38 Indirizzamento Riepilogo org 400h code movl #20, r1 addl r1,r1 movb #0FFh, 800h movl #800h,r2 movb #0EEh, (r2) movb #0FFh, -(r2) movb #0AAh, (r2)+ movb #0FFh, 8(r2) end ; r1=20, ind. immediato ; r1=40, ind. a registro ;mem[0x800]=0xff, ind. assoluto ;r2=0x800 ;mem[r2]=0xee, ind. con registro ;r2=0x800-0x1=0x7ff, mem[0x7ff]=0xff ;ind. con predecremento ;mem[0x7ff]=0xaa, r2=0x800 ;ind. con postincremento ;mem[0x808]=0xff, r2=0x800 ;ind. con spiazzamento

39 Tipi di istruzioni Set Istruzioni Sono organizzate in 8 classi Movimento dati Aritmetiche (somma e sottrazione) Tipo Logico Rotazione e shift Operazioni sui bit di stato controllo del programma controllo della macchina ingresso/uscita

40 Istruzioni Movimento dati

41 Istruzioni MOVs Sono usate per copiare dati da Registro-registro movl r1,r2 Registro-memoria movl r1,(r2) Memoria-registro movl (r1),r2 Memoria-memoria movl (r1),(r2)

42 Istruzioni aritmetiche

43 Registri di stato il registro di stato contiene informazioni sull ultima operazione eseguita Carry, C: 1 se c e stato riporto Negative, N: 1 se risultato ultima oper. è neg. Zero, Z: 1 se ultima oper. ha 0 come risultato overflow, V: 1 se ultima oper. da overflow Parity, P: 1 se risultato ult. oper. ha numero pari di 1 Interrupt enable: se la CPU può accettare interruzioni esterne (es. per operazioni di I/O)

44 Istruzione CMP CMPs effettua la sottrazione SENZA modificare la destinazione es. CMPL R1,R2 sottrai R1 a R2 aggiorna registro stato ma NON modificare R2 registri di stato di interesse aritmetico Z risultato è zero C segnala segno (ricorda la rappresentazione circuito per la sottrazione in compl. a 2)

45 Istruzione CMP CMPs effettua la sottrazione SENZA modificare la destinazione es. CMPL R1,R2

46 Confronto fra registri Aritmetica non segnata CMPL R1,R2 (ipotesi: R1,R2>=0) Equivale ad eseguire R2-R1 senza aggiornare R2 C=1 CMPL R1,R2 C=0 Z=1 Z=0 C=1 ÛR1>R2 Z=1 Û R1=R2 C=0 and Z=0 Û R1<R2 R2-R1<0 (R1>R2) R2-R1>=0 (R1<=R2) Z=0 R1<R2 R1=R2 R1<>R2 not C=0 ÛR1<=R2 Z=0 Û R1<>R2 Z=1 or C=1 Û R1>=R2

47 CMPB R1,R2 Confronto fra registri Aritmetica segnata R1,R2 rappresentati in complemento a 2 Equivale ad eseguire R2-R1 senza aggiornare R2 Z=1 R2-R1=0 (R1=R2) CMPB R1,R2 N=V R2-R1>=0 (R2>=R1) N<>V R1<=R2 Z=0 Z=0 R1<>R2 N=V ÛR1>=R2 N<>V Û R1<=R2 Z=1 Û R1=R2 Z=0 Û R1<>R2 Z=0 R1>R2 R1<R2

48 Esempio movl #100,r1 movl #99,r2 ; a questo punto r1 ed r2 ; contengono valori positivi cmpl r1,r2 ;c=1, n=1, z=0 movl #100,r2 cmpl r1,r2 ;c=0, n=0, z=1 movl #101,r2 cmpl r1,r2 ;c=0, n=0, z=0

49 Istruzioni controllo di programma

50 Istruzioni di controllo esecuzione Istruzioni di salto incondizionato JMP, JSR, RET, RTI JMP: serve a modificare il contenuto del PC JSR: modifica il contenuto del PC ma SALVA il valore corrente del PC in una pila (utile nelle chiamate di sottoprogramma) RET modifica il valore del PC con il valore salvato precedentemente in cima alla pila RTI come RET ma quando il salto è causato da una interruzione

51 Istruzioni di controllo esecuzione Istruzioni di salto condizionato: J, JN Jc Label, (salta a Label se c=1), JNc (salta a Label se c<>1) (c qualunque flag: C (Carry), N (Negative), Z (Zero) V (overflow), P (Parity), I (Interrupt Enable) I flag sono modificati dopo un istruzione. Si usa solitamente l istruzione compare, CMPs, che equivale ad eseguire una sottrazione ma senza modificare il registro di destinazione Ex: CMPL R1,R2 (esegue R2-R1, non modifica R2)

52 Esempio R1>R2 si: R1>R2 R1>R2 si: R1>R2 I1 no: R1<=R2 no: R1<=R2 I1 I2 I2 cmpl R1 R2 JC L2 ;se R1>R2 ;salta ad I2 Istruzione I1 L2: Istruzione I2 cmpl R1 R2 JNC L2 Istruzione I1 L2: Istruzione I2 ;se R1<=R2 ;salta ad I2

53 no: R1<=R2 R1>R2 Esempio si: R1>R2 if R1>R2 then <I1> else <I2> <I3> I2 I1 cmpl R1 R2 JNC L2 ;R2-R1 ;se R2<=R1 ;esegui I2 I3 L1: I1 ;ramo then jmp L3 L2: I2 ;ramo else L3: I3 ;continua

54 Istruzioni controllo macchina: CLASSE 0

55 Istruzioni di tipo logico: Classe 3

56 Istruzioni di rotazione e shift Classe 4

57 Istruzioni di rotazione e shift

58 Istruzioni (sottoinsieme) di Ingresso Uscita Classe 7 TIPO CODICE OPERANDI C N Z V P I COMMENTO 0 Ins dev, D Il dato contenuto nel buffer del device dev è trasferito nella destinazione D0. dev ->d0 1 OUTs S,dev Il dato sorgente S viene trasferito nel buffer del device dev. S->dev 2 START dev Viene azzerato il flipflop STATUS del dev e viene avviata l'operazione. 3 CLEAR dev Viene azzerato il flipflop STATUS del dev senza avviare l'operazione.

59 Esempio programma assembly Problema Trovare il massimo in un insieme di 15 interi positivi Ipotesi Assumiamo che i valori siano compresi nell intervallo interi fra 0 e 255 Programma Valore massimo

60 Esempio programma assembly (cont) Decidere tipo e numero variabili da usare Dove memorizzare i valori in ingresso -> Vettore V di 15 elementi Quali variabili ausiliare sono necessarie Dove memorizzare il valore di uscita registro Algoritmo che risolve il problema ipotizzare come valore massimo 0 e confrontarlo con tutti i 15 valori, aggiornandolo ogni volta che se ne trova uno maggiore

61 Algoritmo e dati V Inizio max i i=0 max=0 i<15 si no Fine V[i]>max no max=v[i] i=i+1

62 Uso dei registri.. Memoria (mem) Inizio R3 0x R1 (i) R1=0,R2=0 R3=0X1300 R1<15 no Fine 14 si mem[r3]>r2 no R2(max) R2=mem[R3] R1=R1+1 R3=R3+1

63 Soluzione prima versione R3 0x1300 Memoria (mem) 0 1 R1 (i) Inizio R1=0,R2=0 R3=0X1300 R1>=15 si Fine loop: XORL R1,R1 XORL R2,R2 MOVL #1300h,R3 CMPB #15,R1 JNC fine; R2(max) 14 no mem[r3]>r2 si R2=mem[R3] R1=R1+1 no skip: CMPB (R3),R2 JNC skip MVLB (R3),R2 ADDL #1,R3 ADDB #1,R1 jmp loop R3=R3+1 fine: halt

64 Osservazioni Parametri nel codice L indirizzo dell inizio del vettore Numero di elementi Uso di due registri Contare il numero di iterazioni Individuare l elemento nel vettore in memoria

65 Direttiva di definizione label EQU n costanti costante1 EQU 4 ;il simbolo costante1=4 costante2 EQU -0101b ;il simbolo costante2=-5 costante EQU 0fffh ;il simbolo costante=4095 Il simbolo label è un numero puro che può essere utilizzato come un dato o un indirizzo.. MOVB costante, R0 ; il byte all indirizzo 4095 ; è spostato in R0 MOVB #costante,r1 ; R1=4095

66 Soluzione seconda versione org 1400h code XORL R1,R1 XORL R2,R2 MOVL #1300h,R3 loop: skip: fine: end CMPB #15,R1 JNC fine; CMPB (R3),R2 JNC skip MVLB (R3),R2 ADDL #1,R3 ADDB #1,R1 jmp loop halt org 1400h base equ 1300h numel equ 15 code loop: skip: fine: end XORL R1,R1 XORL R2,R2 CMPL #numel,r1 JNC fine; CMPB base(r1),r2 JNC skip MVLB base(r1),r2 ADDB #1,R1 jmp loop halt

67 Soluzione terza versione Un accesso in meno alla memoria org 1400h base equ 1300h numel equ 15 code loop: skip: fine: XORL R1,R1 XORL R2,R2 CMPL #numel,r1 JNC fine; CMPB base(r1),r2 JNC skip MVLB Base(R1),R2 ADDB #1,R1 jmp loop halt org 1400h base equ 1300h numel equ 15 code loop: skip: fine: XORL R1,R1 XORL R2,R2 CMPL #numel,r1 JNC fine; movl base(r1),r3 CMPB R3,R2 JNC skip MVLB R3,R2 ADDB #1,R1 jmp loop halt end end

68 Scrittura ed assemblaggio

69 Confronto modi indirizzamento Problema dato un array di 10 longword allocato a partire dalla locazione 2500h costruirne l inverso a partire dalla locazione 3000h Soluzione 1: indirizzamento indiretto con registro Soluzione 2: indirizzamento con post- e pre-incremento Soluzione 3: indirizzamento con spiazzamento

70 Il problema Array1 Array2 2500h 2504h 2508h h V1 V2 V3 Vi V8 V9 3000h 3004h h V9 V8 Vi V3 V2 V1

71 Soluzione 1: indirizzamento indiretto con registro

72 ORG 400H ;****************Dichiarazione Costanti******************** DIM EQU 10 ARRAY1 EQU 2500H ARRAY2 EQU 3000H ;******************Corpo del Programma********************* CODE XORL R0,R0 ; resetta R0 XORL R1,R1 ; resetta R1 XORL R2,R2 ; resetta R2 MOVL #ARRAY1,R1 ; carica in R1 l'indirizzo base dell'array originale MOVL #ARRAY2,R2 ; carica in R2 l'indirizzo base dell'array invertito MOVL #DIM,R0 ; carica in R0 la dimensione (numero di elementi) dell'array da invertire SUBL #1,R0 ; decrementa il contatore R0, R0=#DIM-1 ASLL #2,R0 ; R0=R0*4, calcola l'offset da sommare all'ind.base ; del'array per ottenere l'ind. dell'ultimo elemento ADDL R0,R2 ; pone in R2 l'ind. dell'ultimo elemento dell'array MOVL #DIM,R0 ; ricarica la dimensione dell'array in R0 per usarlo come contatore REPEAT: MOVL (R1),(R2) ; copia memoria memoria di ARRAY1[i] in ARRAY2[#DIM-1-i] ; i=[0...#dim-1] ADDL #4,R1 ; R1 ora punta all'elemento succ. di ARRAY1 SUBL #4,R2 ; R2 ora punta all'elemento prec. di ARRAY2 SUBL #1,R0 ; decrementa il contatore R0 di 1 JNZ REPEAT ; salta a REPEAT se R0 diverso da 0 HALT END ; fine programma

73 Soluzione 2: indirizzamento con post- e pre-incremento

74 ORG 400H ;****************Dichiarazione Costanti******************** DIM EQU? ARRAY1 EQU 2500H ARRAY2 EQU 3000H ;******************Corpo del Programma********************* CODE XORL R0,R0 ; resetta R0 XORL R1,R1 ; resetta R1 XORL R2,R2 ; resetta R2 MOVL #ARRAY1,R1 ; carica in R1 l'indirizzo base dell'array originale MOVL #ARRAY2,R2 ; carica in R2 l'indirizzo base dell'array invertito REPEAT: MOVL #DIM,R0 ASLL #2,R0 ADDL R0,R2 MOVL #DIM,R0 MOVL (R1)+,-(R2) SUBL #1,R0 JNZ REPEAT ; carica in R0 la dimensione (numero di elementi) dell'array da invertire ; calcola l'offset da sommare ad #ARRAY2 per puntare locazione ; corrispondente a ARRAY2[#DIM] NB: se ARRAY2 è di dimensione #DIM ; allora ARRAY2[0..#DIM-1] ; R2 ora punta a ARRAY[#DIM] ; Inizializza R0 a #DIM ; Copia memoria memoria dalla cella puntata da R1 in quella puntata da ; R2-4 (MOVL!). Alla fine del com. R1=R1+4, R2=R2-4 ; Decrementa il contatore R0 ; Se R0!=0 salta a REPEAT HALT END ; Fine programma

75 Soluzione 3: indirizzamento con spiazzamento

76 ORG 400H ;****************Dichiarazione Costanti******************** DIM EQU? ARRAY1 EQU 250H ARRAY2 EQU 278H ;******************Corpo del Programma********************* CODE XORL R0,R0 ; resetta R0 XORL R1,R1 ; resetta R1 XORL R2,R2 ; resetta R2 MOVL #DIM,R0 ; carica in R0 la dimensione (numero di elementi) dell'array da invertire SUBL #1,R0 ; decrementa il contatore R0, R0=#DIM-1 ASLL #2,R0 ; R0=R0*4, calcola l'offset da sommare all'ind.base ; del'array per ottenere l'ind. dell'ultimo elemento (ARRAY[#DIM-1]) MOVL R0,R2 ; Copia il contenuto di R0 in R2 MOVL #DIM,R0 ; ed inizializza R0 a #DIM REPEAT: MOVL ARRAY1(R1),ARRAY2(R2) ; Copia memoria memoria dall'indirizzo ARRAY1[i] in ; ARRAY2[#DIM-1-i], i=[0..#dim-1] ADDL #4,R1 ; Incrementa di 4 byte R1 (gli elementi dell'array sono longwords!) SUBL #4,R2 ; Decrementa di 4 byte R2 ; R1=i*4, R2=(#DIM-1-i)*4 SUBL #1,R0 ; Decrementa il contatore R0 JNZ REPEAT HALT END

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili PD-32,prima parte Struttura a blocchi del sistema di calcolo MEMORIA KB Memory Address Bus Memory Data Bus Memory Control Bus PD32 I/O Address Bus I/O Data Bus I/O Control Bus IACK Device Device 7 Pinout

Dettagli

Metodi di indirizzamento

Metodi di indirizzamento Testo di rif.to: [Congiu] 4.3 (pg. 138 148) 02.b Metodi di indirizzamento Indirizzamento immediato Indirizzamento di registro Indirizzamenti in memoria Metodi di indirizzamento 1 Gli indirizzi degli operandi

Dettagli

Il Processore PD32. Introduzione all Architettura Hardware e Programmazione Software. Alessandro Pellegrini A.A. 2012/2013

Il Processore PD32. Introduzione all Architettura Hardware e Programmazione Software. Alessandro Pellegrini A.A. 2012/2013 Il Processore PD32 Introduzione all Architettura Hardware e Programmazione Software Alessandro Pellegrini Calcolatori Elettronici Sapienza, Università di Roma A.A. 2012/2013 Obiettivo di questa parte del

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

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Linguaggio 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

Dettagli

Programmazione Assembly

Programmazione Assembly Programmazione Assembly Alessandro Pellegrini Calcolatori Elettronici Sapienza, Università di Roma A.A. 2012/2013 Scheletro di un programma assembly 1 ORG [INDIRIZZO CARICAMENTO] 2 3 ; Dichiarazione costanti

Dettagli

FONDAMENTI DI INFORMATICA Lezione n. 11

FONDAMENTI DI INFORMATICA Lezione n. 11 FONDAMENTI DI INFORMATICA Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di

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

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

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

Il linguaggio macchina

Il linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio

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

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

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F. Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 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

Dettagli

PD32. Esercitazione sull interfacciamento con un dispositivo di IO

PD32. Esercitazione sull interfacciamento con un dispositivo di IO PD32 Esercitazione sull interfacciamento con un dispositivo di IO Domanda #5 14/09/2000 Si dispone di un PD32 per effettuare il collaudo di un circuito integrato combinatorio con 5 ingressi e una uscita,

Dettagli

Uso dei metodi di indirizzamento

Uso dei metodi di indirizzamento Testo di rif.to: [Congiu] 4.4.1 (pg. 148 158) 02.e Uso dei metodi di indirizzamento Un esempio: acquisizione dati Esempi d impiegod Confronto tra i metodi Analisi temporale Sistema di acquisizione dati

Dettagli

Lezione 17: Indirizzamento della memoria LC-3

Lezione 17: Indirizzamento della memoria LC-3 Lezione 17: Indirizzamento della memoria LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 22 Maggio 2013 Riassunto sull architettura LC-3 1. Organizzazione della memoria: La memoria è composta

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

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

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

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

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

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

Gestione delle subroutine. Appunti di Sistemi per la cl. IV Dinf A cura del prof. Ing. Mario Catalano

Gestione delle subroutine. Appunti di Sistemi per la cl. IV Dinf A cura del prof. Ing. Mario Catalano Gestione delle subroutine Appunti di Sistemi per la cl. IV Dinf A cura del prof. Ing. Mario Catalano Vantaggi delle subroutines In maniera analoga alle funzioni/metodi dei linguaggi di alto livello, anche

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

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

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

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

Istruzioni assembler Istruzione N Registri

Istruzioni 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

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

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

ISA (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

Dettagli

ARM: stack e subroutine

ARM: stack e subroutine ARM: stack e subroutine 05.d Le istruzioni di accesso allo stack L istruzione di chiamata a subroutine Gestione degli stack frame Istruzione di store multiplo (STM Le istruzioni LDR e STR operano su parole

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

LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER

LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Istruzioni di selezione Linguaggio ad alto livello Assembler

Dettagli

PD32. Interfacciamento con i dispositivi di I/O (V)

PD32. Interfacciamento con i dispositivi di I/O (V) PD32 Interfacciamento con i dispositivi di I/O (V) Interazione CPU - dispositivi Soluzioni possibili Busy Waiting Utilizzabile quando CPU esegue solo il task di dialogo con la periferica Interruzioni D.M.A.

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

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

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

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 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

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Il linguaggio macchina

Il linguaggio macchina Università degli Studi di Palermo Facoltà di Ingegneria Il linguaggio macchina Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,

Dettagli

Lezione 12: L architettura LC-3

Lezione 12: L architettura LC-3 Lezione 12: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 24 Maggio 2012 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

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

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

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

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il 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

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio 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

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

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino Corso di Alfabetizzazione Informatica / La CPU CPU (Central Processing Unit) Funzione: eseguire i programmi immagazzinati in memoria principale prelevando le istruzioni (e i relativi), interpretandole

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio 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

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

Linguaggio Assembly e linguaggio macchina

Linguaggio 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

Dettagli

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

Esercizio riassuntivo di traduzione e assemblaggio da linguaggio C ad assembly Motorola

Esercizio riassuntivo di traduzione e assemblaggio da linguaggio C ad assembly Motorola Esercizio riassuntivo di traduzione e assemblaggio da linguaggio C ad assembly Motorola 68000. Ultima modifica: 10 Maggio 2005. Autore: Daniele Paolo Scarpazza. Per segnalare eventuali difficoltà o problemi,

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC 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

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO JP pq E un istruzione di salto assoluto incondizionato. Per salto assoluto si intende il fatto che grazie a quest istruzione, il contenuto

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

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Dettagli

Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso

Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Salto Non Condizionato Salto Condizionato JMP jump BRA branch non condizionato BEQ branch if Equal BNE branch if Not Equal BCS branch if

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

Dettagli

ORG $8800 N DC 9,11,1,4,5,7,2

ORG $8800 N DC 9,11,1,4,5,7,2 ESEMPI DI ASSEMBLY M68000 Esercizio 1 Scrivere un programma non segmentato in linguaggio macchina (simbolico), con sintassi nativa M6800, che rispetti la seguente specifica. Dati 7 numeri di tipo Word,

Dettagli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti

Dettagli

JPD132. Microprocessore e assembly

JPD132. Microprocessore e assembly JPD132 Microprocessore e assembly Il processore JPD132 Il JPD132 è un ipotetico processore che estende le possibilità del PD32 principalmente con un linguaggio assembly comprendente nuovi metodi di indirizzamento,

Dettagli

Programmi per la macchina di Mano addizione di due numeri

Programmi per la macchina di Mano addizione di due numeri Programmi per la macchina di Mano addizione di due numeri Indi Codici simbolici esadecimale binario rizzo 000 LDA 004 2004 0010 0000 0000 0100 001 ADD 005 1005 0001 0000 0000 0101 002 STA 006 3006 0011

Dettagli

L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica

L 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

Dettagli

Tecniche di traduzione da C ad assembly 68000. Note generali

Tecniche di traduzione da C ad assembly 68000. Note generali Tecniche di traduzione da C ad assembly 68000 Note generali Schema di compilazione da C ad assembly 68K Ispirato a GCC Fa uso di: banco di registri classi d istruzioni modi d indirizzamento e organizzazione

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Dettagli

Capitolo 5 Struttura di base del processore

Capitolo 5 Struttura di base del processore Capitolo 5 Struttura di base del processore 5.1. Il periodo di clock deve ospitare tutti i ritardi di propagazione più il tempo di impostazione per i registri. a. Minimo periodo di clock = 70 + 600 + 50

Dettagli

Passaggio di Parametri per Valore o Indirizzo

Passaggio di Parametri per Valore o Indirizzo Passaggio di Parametri per Valore o Indirizzo Come in C, l assembler permette di passare un dato per valore (copia) o per indirizzo, nel secondo caso rendendo modificabile il dato stesso da dentro una

Dettagli

Linguaggio C: PUNTATORI

Linguaggio C: PUNTATORI Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori

Dettagli

Modi di indirizzamento del processore MC68000 (parte seconda)

Modi di indirizzamento del processore MC68000 (parte seconda) Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte seconda) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea

Dettagli

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni

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

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Linguaggio 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à

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

CPU pipeline hazards

CPU pipeline hazards Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!

Dettagli

Ciclo del Processore. Memoria

Ciclo del Processore. Memoria Ciclo del Nella figura seguente è riportata la rappresentazione semplificata ed essenziale di un computer. RESET Canali Di Ingresso Uscita Uscita Ingressi Fig. 1 Rappresentazione semplificata di un computer

Dettagli

Elementi base per la realizzazione dell unità di calcolo

Elementi base per la realizzazione dell unità di calcolo Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Esercizio n. 7 - Microcodice

Esercizio n. 7 - Microcodice Esercizio n. 7 - Microcodice Lo schema riportato qui di fianco illustra l architettura di processore a bus singolo di riferimento. Si scriva il microcodice capace di eseguire la coppia di istruzioni seguenti:

Dettagli

Il modello di von Neumann

Il modello di von Neumann 1 Organizzazione di (quasi) tutti gli elaboratori moderni: personal computer, workstation, portatili, smartphone,... CPU memoria Control Unit I/O ALU 2 Il cuore è la CPU (Control Processing Unit): esegue

Dettagli

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1

Il CPU UNITA DI CALCOLI (ALU) UNITA DI CONTROLLO (CU) 1 Il CPU UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) info@stoianov.it La struttura del Calcolatore UNITA DI CONTROLLO (CU) UNITA DI CALCOLI (ALU) CPU INPUT OUTPUT MEMORIA CENTRALE MEMORIA ESTERNA info@stoianov.it

Dettagli

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel 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

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore Architettura di un calcolatore Corso di Informatica A Vito Perrone Indice La macchina di Von Neumann Memoria CPU Bus Interfacce Esempio L algoritmo Il programma Fasi di esecuzione di un istruzione 2 1

Dettagli