The DLX Assembly. DLX Instruction Set Architecture

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "The DLX Assembly. DLX Instruction Set Architecture"

Transcript

1 The DLX Assembly 1 DLX Instruction Set Architecture Concetti architetturali: Semplicità del load/store IS ( fissa Semplicità nella decodifica (istruzioni a lunghezza Caratteristiche 32 General Purpose Registers 32 Floating Point Registers a singola precisione ( precisione (condivisi con 16 FPRs a doppia La lunghezza di una word è di 32 bit. Indirizzamento della memory a byte, Big Endian, indirizzi di

2 Registri L ISA del DLX contiene 32 (R0-R31) general-purpose registers da 32 bit I registri R1-R31 sono dei reali GP registers R0 contiene sempre il valore 0 e non può essere modificato R31 è utilizzato per conservare l indirizzo di ritorno per le istruzioni JAL e JALR 3 Registri Un registro può essere caricato con ( 8-bit ) un byte ( 16-bit ) un halfword ( 32-bit ) una fullword I bit dei registri sono numerati come 0-31, da sinistra a destra (0 è il bit più significativo, 31 è quello meno significativo). L ordinamento dei byte è fatto in modo simile 0 7 BYTE BYTE BYTE BYTE 3 4 2

3 Registri Floating-Point ( F31 32 registri da 32 bit a singola precisione (F0, F1,.., Condivisi con16 registri da 64 bit a doppia precisione ( F30 (F0, F2,..., La più piccola unità indirizzabile è in un FPR è 32 bit Single-Precision Floating Point Registers F0 F1 F2 F3... F30 F31 F0 F2... F30 Double-Precision Floating Point Registers 5 Registri speciali Ci sono tre registri speciali PC, Program Counter, contiene l indirizzo ( bit dell istruzione dal leggere dalla memoria (32 IAR, Interrupt Address Register, mantiene l indirizzo di ritorno di 32 bit del programma interrottoquando ( bit una istruzione TRAP viene eseguita (32 FPSR, Floating-Point Status Register, utilizzato nei conditional branch per valutare il risultato di una ( bit operazione FP (1 6 3

4 Classi di Istruzioni Il DLX contiene 92 istruzioni divise in 6 classi load & store instructions move instructions arithmetic and logical instructions floating-point instructions jump & branch instructions special instructions 7 Tipi di istruzioni Tutte le istruzioni DLX sono di 32 bit e devono essere allineate in memoria a word. Esistono 3 formati delle istruzioni: I-type (Immediate): manipolano dati forniti da un campo di 16 bit; R-type (Register): manipolano dati forniti da uno o due registri; J-type (Jump): per specificare l indirizzo di salto non un registro; 8 4

5 ( 3 I-type Instructions (1 of ( byte load/store (word, u/s halfword, u/s operazioni ALU con operando immediato ( branch ) tutte le istruzioni di salto condizionato JR, JALR Opcode rs 1 rd immediate ( 3 I-type Instructions (2 of Opcode rs 1 rd immediate Opcode: istruzione DLX da eseguire rs 1 : sorgente per l ALU, indirizzo base per le Load/Store, registro da testare per i conditional branches, indirizzo destinazione per JR & JALR rd: destinazione per la Load e le operazioni ALU operations, sorgente per la store. (Non usato per conditional branches, JR e ( JALR immediate: spiazzamento per calcolare l indirizzo delle load e delle store, operando per l ALU, spiazzamento esteso in segno da sommare al PC per calcolare l indirizzo destinazione di un ( JALR conditional branch. (non usato per JR e 10 5

6 ( 3 I-type Instructions (3 of Opcode rs 1 rd immediate 16 lw r3, 6(r2) ; rd=r3, rs1=r2, imm=6 ; r3=mem[est_segno(6)+r2]; sw -7(r4),r3 ; rd=r3, rs1=r4, imm=7 ; Mem[est_segno(-7)+r4]=r3; addi r1,r2,5 ; rd=r1, rs1=r2, imm=5 ; r1=r2+est_segno(5); beqz r1,target ; rs1=r1, imm=target ; ( PC=PC+est_segno(target if(r1==0) jr r1 ; rs1=r1 ; PC=r1 11 R-type Instructions Sono usate per istruzioni che hanno come operandi dell ALU solo registri, per leggere e scrivere su e da registri speciali (IAR e FPSR), e per spostare valori tra i GPR e/o i FPR R-R ALU 6 R-R FPU rs 1 5 rs 2 5 rd unused func add r1,r2,r3 ;rd=r1, rs1=r2, rs2=r rs 1 5 rs 2 5 rd unused func addf f1,f2,f3 ;rd=f1, rs1=f2, rs2=f3 12 6

7 J-type Instructions Include jump (J), jump & link (JAL), TRAP e return from ( RFE ) exception 0 5 Opcode name name: spiazzamento con segno di 26 bit che è sommato all indirizzo (PC+4) per generare l indirizzo di destinazione. Per le TRAP esso specifica un indirizzo assoluto senza segno di 26 bit. 26 j target; ( PC=PC+est_segno(target 13 Load & Store GPR LB (Load Byte), LBU (Load Byte Unsigned), LH (Load Half word), LHU (Load Half word Unsigned), LW (Load Word), ( Word SB (Store Byte), SH (Store Half word), SW (Store LB/LBU/LH/LHU/LW rd,immediate(rs 1 ( SB/SH/SW immediate(rs 1 ),rd 14 7

8 Load & Store FPR LF (Load Float), LD (Load Double), ( Double SF (Store Float), SD (Store LF/LD Fd,immediate(rs 1 ( SF/SD immediate(rs 1 ),Fd 15 Arithmetic and Logical Instructions Quattro categorie: aritmetiche logiche shift set-on-comparison Operano con valori con segno/senza segno memorizzati nei GPR e con immediato Formato: R-type e I-type 16 8

9 Arithmetic Instructions ADD (add r1,r2,r3), SUB (sub r1,r2,r3), tratta il contenuto dei registri sorgente con segno overflow exception ADDU (addu r1,r2,r3), SUBU (subu r1,r2,r3), tratta il contenuto dei registri sorgente senza segno ( r1,r2,17 ADDI, SUBI, ADDUI, SUBUI (addi come prima ma con un operando immediato ( r1,r2,r3 MULT,MULTU,DIV,DIVU (mult 17 Logical Instructions ( r1,r2,r3 AND, OR, XOR (and operazione logica tra il contenuto di due registri ( r1,r2,16 ANDI, ORI, XORI (andi operazione logica tra il contenuto di un registro e un immediato zero-extended ( r1,0xff00 LHI (Load High Immediate) (lhi Piazza i 16 bit dell immediate nella porzione più significativa del registro destinazione e riempie la parte restante con '0' Permette di creare una costante di 32 bit in un registro GPR ( ADDI reg con due istruzioni (LHI seguita da 18 9

10 Shift Instructions SLL, SRL ( r3 (sll r1,r2,r3 ; r1 = r2 << Fa lo shift di una quantità specificata dal valore di un registro GP SLLI, SRLI (slli r1,r2,3 ; ( 3 << r2 r1 = Fa lo shift di una quantità specificata dal valore immediato Solo cinque bit vengono considerati 19 Arithmetic and Logical Instructions Set-On-Comparison Instructions SLT, SGT, SLE, SGE, SEQ, SNE ( r1=0 (slt r1,r2,r3 if (r2<r3) r1=1 else ( r1=0 (sle r1,r2,r3 if (r2<=r3)r1=1 else ( r1=0 (seq r1,r2,r3 if (r2==r3)r1=1 else Pone il registro destinazione a valore 1 se il risultato del confronto è 'true, al valore 0 altrimenti. SLTI, SGTI, SLEI, SGEI, SEQI, SNEI ( r1=0 (sgei r1,r2,5 if (r2 >= 5) r1=1 else Come prima ma con un argomento immediato (esteso in ( segno 20 10

11 Branch Instructions BEQZ, BNEZ (I-type) beqz r1,target ( PC=PC+4+est_segno(target if(r1==0) bnez r1,target ( PC=PC+4+est_segno(target if(r1==1) L indirizzo destinazione è calcolato sommando all immediato esteso in segno il PC Move Instructions Sono tutte nel formato R-type ( implementata MOVI2S, MOVS2I: GPR IAR (non movi2s rd,rs1 ;rd SR, rs1 GPR movs2i rd,rs1 ;rd GPR, rs1 SR MOVF, MOVD: FPR FPR movf rd,rs ;rd,rs FPR ( pari movd rd,rs ;rd,rs FPR (indici MOVFP2I, MOVI2FP: GPR FPR movfp2i rd,rs ;rd GPR, rs FPR movi2fp rd,rs ;rd FPR, rs GPR 22 11

12 Floating-Point Instructions Arithmetic instructions ( float ) ADDF, SUBF, MULTF, DIVF addf f0,f1,f2 subf f3,f4,f5 multf f1,f2,f3 divf f1,f2,f3 ( double ) ADDD, SUBD, MULTD, DIVD addd f0,f2,f4 subd f2,f4,f6 multd f4,f6,f8 divd f6,f8,f10 23 Floating-Point Instructions Tre categorie aritmetiche conversione Set-on-comparison Tali istruzioni operano con valori FP memorizzati in un solo registro (per singola precisione) o in una coppia di registri (per doppia precisione) FP Sono tutte nel formato R-type 24 12

13 Floating-Point Instructions Convert Instructions ( f6 ) CVTF2D (cvtf2d f6,f3) converte un float (f3) in double ( f5 ) CVTF2I (cvtf2i f5,f3) converte un float (f3) in integer ( f3 ) CVTD2F (cvtd2f f3,f4) converte un double (f4) in float ( f1 ) CVTD2I (cvtd2i f1,f4) converte un double (f4) in integer ( f1 ) CVTI2F (cvti2f f1,f3) converte un integer (f3) in float ( f4 ) CVTI2D (cvti2d f4,f1) converte un integer (f1) in double 25 Floating-Point Instructions Set-On-Comparison Instructions LTF Fa,Fb; LTD Da,Db; Less Than Float/Double (; FPSR=0 (if( Fa<Fb) FPSR=1; else GTF Fa,Fb; GTD Da,Db; Greater Than Float/Double LEF Fa,Fb; LED Da,Db; Less Than or Equal To Float/Double GEF Fa,Fb; GED Da,Db; Greater Than or Equal To Float/Double EQF Fa,Fb; EQD Da,Db; Equal To Float/Double NEF Fa,Fb; NED Da,Db; Not Equal To Float/Double 26 13

14 Branch Instructions BFPT, BFPF (I-type) bfpt label if (fpsr==1) PC=PC+4+ est_segno(label) bfpf label if (fpsr==0) PC=PC+4+ est_segno(label) L indirizzo destinazione è calcolato sommando all immediato esteso in segno il PC Jump Instructions J, JR, JAL, JALR j target; ( PC=PC+4+est_segno(target jr r1; PC=r1 jal label; ( PC=PC+4+est_segno(label r31=pc+4; jal r1; r31=pc+4; PC= r

15 Procedure La chiamata ad una procedura avviene mediante jal indirizzo_procedura; Questa istruzione salva sul registro r31 l indirizzo dell istruzione successiva alla jal ( indirizzo di ritorno) e assegna a PC il valore dell indirizzo della procedura Al termine della procedura si ritorna all istruzione successiva a quella chiamante la procedura mediante jr r31; Questa istruzione salta all indirizzo di ritorno contenuto in r31 29 Procedure che chiamano altre procedure Nel caso di una procedure A che chiama una procedure B, prima di chiamare B è necessario salvare sullo stack il valore del registro r31 ovvero l indirizzo di ritorno di A. Senza il salvataggio di r31 la chiamata di B mediante jal renderebbe irrecuperabile l indirizzo di ritorno del chiamante di A. Al termine della procedura B viene ripristinato il valore dell indirizzo di ritorno di A copiando in r31 il valore in cima allo stack. L indirizzo della cima dello stack è conservato nel registro r

16 Esempio di chiamata di una procedura A: jal B; B: addi r29, r29,4; sw 0(r29),r31; jal C; lw r31, 0(r29); subi r29, r29, 4; jr r31; C: jr r31; 31 Passaggio dei parametri di una procedure Il passaggio dei parametri avviene mediante i registri r2,r3,r4,r5; Se la procedura chiamata deve modificare il valore dei registri, essi devono essere salvati sullo stack prima di eseguire le istruzioni della procedure e, al termine della procedure, i valori originali dei registri vengono ripristinati leggendoli dalla cima allo stack

17 Programmazione Assembly Funzioni dell Assemblatore Traduzione da linguaggio mnemonico a linguaggio ( oggetto macchina (Produzione del modulo Analisi sintattica Tipi di Istruzioni dell Assemblatore ( esecuzione Istruzioni macchina (relative alla fase di Istruzioni per l Assemblatore (direttive: relative alla fase di traduzione). 33 Traduzione del codice Assembler La traduzione viene realizzata in due passate consecutive. Nella prima passata l assembler raccoglie tutte le etichette Inizio : Istruzione e calcola l indirizzo di memoria ad esse corrispondente. In questa prima passata costruisce la tabella dei simboli, associando ad ogni simbolo l indirizzo di memoria ad esso associato. Nella seconda passata le istruzioni avviene la sostituzione di valori numerici al posto dei simboli: (. etc Propri del linguaggio (codici operativi, registri, ( costanti Definiti dal programmatore (indirizzi e 34 17

18 Traduzione del codice Assembler La necessità di una doppia passata è dovuta alla possibilità di riferimenti in avanti ( uso di una etichetta prima della sua definizione). Il file prodotto dall assembler è chiamato file oggetto. Esso può contenere dei riferimenti irrisolti a sottoprogrammmi o dati definiti in altri file. Un etichetta è esterna se l oggetto che l etichetta indica può essere nominata anche in file diversi da quello in cui l etichetta è definita. (talvolta esse vengono chiamate globali). Un etichetta è locale se può essere usata solo nel file in cui è definita. L assembler è in grado di risolvere solo le etichette locali. Il compito di risolvere i riferimenti esterni è demandato al linker. 35 Il Linker Il Linker (detto anche Loader) deve: Costruire l eseguibile a partire dai vari moduli oggetto Segnalare gli errori di linking (simboli mancanti e/o ( duplicati ( Opzionale ) Creare una mappa della memoria 36 18

19 Direttive per l assembler Le direttive per l assembler iniziano con il simbolo.. data <ind> Il codice generato dopo questa direttiva viene allocato nel segmento dei dati. Se specificato l indirizzo (facoltativo) ind, l allocazione inizia a partire dall indirizzo ind.. text <ind> Il codice generato dopo questa direttiva viene allocato nel segmento testo. In questa sezione possono essere presenti solo istruzioni macchina e word allocate mediante la direttiva.word. 37 Direttive.word w1, w2,.., wn Memorizzazione dei valori a 32 bit w1, w2,.., wn in locazioni di memoria consecutive..half h1, h2,.., hn Memorizzazione dei valori a 16 bit h1, h2,.., hn in locazioni di memoria consecutive..byte b1, b2,.., bn Memorizzazione dei valori a 8 bit b1, b2,.., bn..float f1, f2,.., fn Memorizzazione dei numeri reali a singola precisione f1, f2,.., fn in locazioni di memoria consecutive..double d1, d2,.., dn Memorizzazione dei numeri reali a doppia precisione d1, d2,.., dn in locazioni di memoria consecutive

20 Direttive.align n Allineamento dei dati da scrivere in memoria all indirizzo modulo 2 n immediatamente successivo..ascii str Memorizzazione della sequenza di caratteri ASCII corrispondenti alla stringa str, senza inserire il carattere terminale 0..asciiz str Memorizzazione della sequenza di caratteri ASCII corrispondenti alla stringa str, terminandola con il carattere 0..space n Allocazione di n byte di spazio nel segmento dati. 39 Direttive.global label Rende la label disponibile per riferimenti provenienti da istruzioni macchina relativo ad altri moduli 40 20

21 ( 2 Traps - The System Interface (1 of Le trap costituiscono l interfaccia tra i programmi DLX e il sistema di I/O. Sono definite cinque trap in WinDLX Esse sono: Trap #0: Termina un programma Trap #1: Apre un File Trap #2: Chiude File Trap #3: Legge un blocco da File Trap #4: Scrive un blocco su File Trap #5: Output formattato per lo Standard-Output 41 ( 2 Traps - The System Interface (2 of Per tutte le trap: Esse corrispondono alle funzioni C open(), close(), () printf read(), write() e i descrittori di file 0,1 ad 2 sono riservati per stdin, stdout e stderr L indirizzo dei parametri per la chiamata di sistema deve essere caricato nel registro R14 Tutti i parametri devono essere di 32 bit I risultato è restituito nel registro R

22 Trap 1 apertura di un file Parameter 1. filename: Address of a zero-terminated string, that contains the path of the file to be opened. 2. mode, to open the file. Following modes can be combined using logical or-operation: 0x0001 O_RDONLY (read only) 0x0002 O_WRONLY (write only) 0x0004 O_RDWR (read and write) 0x0100 O_CREATE (create file) 0x0200 O_TRUNC (truncate file) 0x0400 O_EXCL (open file exclusively (with SHARE)) 0x0800 O_APPEND (append to file) 0x4000 O_TEXT (Convert CR/LF) 0x8000 O_BINARY (No conversion of CR/LF) 3. Additional Flags: 0x0000 S_IFREG (Normal file, no directory etc.) 0x0100 S_IREAD (read access permission) 0x0080 S_IWRITE (write access permission) 0x0040 S_IEXEC (execute permission) The file descriptor is returned in register R1. 43 Trap 1 esempio di apertura di un file.data FileName:.asciiz "D:\\Temp\\Dati.DAT".align 2 Par: ( OPEN ) ;*** Parameters for Trap1.word FileName ;create for R/W:.word 0x0104 ;R/W-access permission:.word 0x0180 FileDescr:.space 4.text addi r14,r0,par; trap 1 sw FileDescr,R

23 Trap 2 Chiusura di un file Parameter: 1. File descriptor of the file to be closed. Zero is returned in register R1, if it was successful, -1 otherwise..data FileName:.asciiz "D:\\Temp\\dati.DAT.align 2 Par:.word FileName, 0x0104, 0x0180 FileDescr:.space 4.text addi r14,r0,filedescr trap 2 45 Trap 3 Lettura da file A file block or a line from stdin can be read with this trap. Parameter: 1. File descriptor of the file 2. Address, for the destination of the read operation 3. Size of block (bytes) to be read The actual number of bytes read is returned in register R

24 Trap 3 Esempio di lettura da file.data buffer:.space 50 FileName:.asciiz "D:\\Temp\\dati.DAT.align 2 Par:.word FileName, 0x0001, 0x0100 FileDescr:.space 4.word buffer.word 50.text addi r14,r0,par; trap 1 sw FileDescr,R1 ;read addi r14,r0,filedescr ; trap 3 47 Trap 3 Lettura da stdin Non serve aprire esplicitamente lo stdin mediante la trap 1 Parametro: Descrittore dello stdin : 0 Indirizzo,per la destinazione dell operazione di lettura Numero di blocchi (byte) da leggere Il numero di byte è restituito R1.data buffer:.space 64 FileDesc:.word 0, buffer, 64.text addi r14,r0,filedesc trap 3 trap

25 Trap 4 Scrittura su file A block can be written to the memory or the standard output. Parameter: 1. File descriptor of file 2. Address of block to be written 3. Size of the block (bytes) The actual number of bytes written is returned in register R1. 49 Trap 4 Scrittura su file.data buffer:.space 50 FileName:.asciiz D:\\Temp\\dati.DAT.align 2 Par:.word FileName, 0x0104, 0x0180 FileDescr:.space 4.word buffer.word 50.text addi r14,r0,par; trap 1 sw FileDescr,R1 addi r14,r0,filedescr; trap

26 Trap 5 - Formatted Output to Standard Out Parametro: Stringa formattata: guardare la funzione C () printf Argomenti: in accordo alla stringa di formato Il numero di byte trasferiti allo stdout è restituito in R1.data msg:.asciiz "Hello World!\nreal:%f, integer:%d\n".align 2 msg_addr:.word msg.double word text addi r14,r0,msg_addr trap 5 trap 0 51 Esempio: Input Unsigned (C ( code Legge una stringa dal stdin e la converte in decimale int InputUnsigned(char ( PrintfPar * { char ReadPar[80]; int i, n; char c; printf( %s, PrintfPar); scanf( %s, ReadPar); i = 0; n =0; while (ReadPar[i]!= '\n') { c = ReadPar[i] - 48; n = (n * 10) + c; i++ } return n; } 52 26

27 Esempio: Input Unsigned Legge una stringa dal stdin e la converte in decimale ;expect the address of a zero- ;terminated prompt string in R1 ;returns the read value in R1 ;changes the contents of registers R1,R13,R14.data ;*** Data for Read-Trap ReadBuffer:.space 80 ReadPar:.word 0,ReadBuffer,80 ;*** Data for Printf-Trap PrintfPar:.space 4 SaveR2:.space 4 SaveR3:.space 4 SaveR4:.space 4 SaveR5:.space 4 53 Esempio: Input Unsigned.text.global InputUnsigned InputUnsigned: ;*** save register contents sw SaveR2,r2 sw SaveR3,r3 sw SaveR4,r4 sw SaveR5,r5 ;*** Prompt sw PrintfPar,r1 addi r14,r0,printfpar trap 5 ;*** call Trap-3 to read line addi r14,r0,readpar trap 3 ;*** determine value addi r2,r0,readbuffer addi r1,r0,0 addi r4,r0,10 ;Dec system Loop: ;*** reads digits to end of line lbu ( r3,0(r2 seqi r5,r3,10 ;LF -> Exit bnez r5,finish subi r3,r3,48 ; 0 multu r1,r1,r4 ;Shift decimal add r1,r1,r3 addi r2,r2,1 ;inc pointer j Loop Finish: ;*** restore old regs contents lw r2,saver2 lw r3,saver3 lw r4,saver4 lw r5,saver5 jr r31 ; Return 54 27

28 ( 1/2 ) Esempio: Fattoriale.data Prompt:.asciiz "A value >1: " PrintfFormat:.asciiz "Factorial = %g\n\n".align 2 PrintfPar:.word PrintfFormat PrintfValue:.space 8.text.global main main: ;*** Read from stdin into R1 addi r1,r0,prompt jal InputUnsigned 55 ( 2/2 ) Esempio: Fattoriale ;*** init values movi2fp f10,r1 cvti2d f0,f10 ;D0..Count register addi r2,r0,1 movi2fp f11,r2 cvti2d f2,f11 ;D2..result movd f4,f2 ;D4..Constant 1 Loop:;*** Break loop if D0 = 1 led f0,f4 ;D0<=1? bfpt Finish ;*** Multiplication and next loop multd f2,f2,f0 subd f0,f0,f4 j Loop Finish: ;*** write result to stdout sd PrintfValue,f2 addi r14,r0,printfpar trap 5 trap

29 ( 1 ) Somma tra gli elementi di un vettore.data vett:.space 20 msg_lett:.asciiz "\ninserire un numero\n" msg_somma:.asciiz "\nla somma e' %d".align 2 msg_sm_addr:.word msg_somma somma:.space 4.text.global main main: loop_lett: addi r3,r0,5 addi r2,r0, 0 addi r1,r0,msg_lett jal InputUnsigned sw vett(r2), r1 addi r2,r2,4 subi r3,r3,1 bnez r3, loop_lett 57 ( 2 ) Somma tra gli elementi di un vettore calcolo: loop_somma: addi r3,r0,5 addi r2,r0,0 addi r4,r0,0 ( r5,vett(r2 lw subi r3,r3,1 add r4,r4,r5 addi r2,r2,4 bnez r3,loop_somma stampa: sw somma(r0),r4 addi r14,r0, msg_sm_addr trap 5 fine: trap

30 ( 1/4 ) Esempio: Minimo.data vett:.space 20 msg_lettura:.asciiz "\ninserire un numero" msg_stampa:.asciiz "\nil minimo e' %d e si trova in posizione %d".align 2 msg_stampa_addr:.word msg_stampa minimo:.space 4 posmin:.space 4 59 ( 2/4 ) Esempio: Minimo.text.global main main: addi r2,r0,0 loop_lettura:addi r1,r0,msg_lettura jal InputUnsigned sw vett(r2), r1 addi r2, r2,4 slti r3,r2,20 bnez r3, loop_lettura 60 30

31 ( 3/4 ) Esempio: Minimo calcolo_min: loop_min: if_vi_min: fine_ciclo_min: addi r2,r0,0 addi r3,r0,5 addi r6,r0,0 lw r5, vett(r2) addi r2,r2,4 subi r3,r3,1 ( vett(r2 lw r4, slt r15, r4,r5 beqz r15, fine_ciclo_min add r5,r0,r4 srli r6,r2,2 bnez r3, loop_min 61 ( 4/4 ) Esempio: Minimo stampa: sw minimo(r0),r5 sw posmin(r0), r6 addi r14,r0,msg_stampa_addr trap 5 fine: trap

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca

Dettagli

L ambiente di simulazione SPIM

L ambiente di simulazione SPIM Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/28

Dettagli

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori

Dettagli

Manualino minimale MIPS

Manualino minimale MIPS Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Manualino minimale MIPS Marco Tarini Operazioni aritmetiche Nome Comando completo Esempio Sintassi (es) Significato Semantica

Dettagli

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni

Dettagli

Appunti di Calcolatori Elettronici Capitolo 4 Architettura del DLX DLX istruzioni load/store pipeline decodifica dell insieme di istruzioni

Appunti di Calcolatori Elettronici Capitolo 4 Architettura del DLX DLX istruzioni load/store pipeline decodifica dell insieme di istruzioni Appunti di Calcolatori Elettronici Capitolo 4 Architettura del DLX Introduzione... 1 Descrizione generale dell architettura DLX... 2 Istruzioni del DLX... 3 Istruzioni di caricamento/memorizzazione...

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:

Dettagli

Il simulatore SPIM SPIM

Il simulatore SPIM SPIM Il simulatore SPIM Architetture dei Calcolatori (lettere A-I) SPIM SPIM: un simulatore per eseguire programmi assembler scritti per processori MIPS32 Download e materiale relativo alla pagina Web http://www.cs.wisc.edu/~larus/spim.html

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

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

Le costanti Le modalità di indirizzamento L assembly del MIPS

Le costanti Le modalità di indirizzamento L assembly del MIPS Le costanti Le modalità di indirizzamento L assembly del MIPS Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/45 Sommario Le costanti

Dettagli

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio

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

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

ToolChain: Come Generare Applicazioni in Linguaggio Macchina

ToolChain: Come Generare Applicazioni in Linguaggio Macchina ToolChain: Come Generare Applicazioni in Linguaggio Macchina Luca Abeni e Luigi Palopoli March 30, 2015 La Lingua della CPU Una CPU capisce e riesce ad eseguire solo il linguaggio macchina Linguaggio di

Dettagli

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica SPIM Architetture dei Calcolatori (Lettere A-I) SPIM Ing.. Francesco Lo Presti Simulatore che esegue programmi assembler per architetture RISC MIPS R2000/R3000 Legge programmi in assembler MIPS e li traduce

Dettagli

Architettura del Set di Istruzioni (ISA)

Architettura del Set di Istruzioni (ISA) Architettura del Set di Istruzioni (ISA) Maurizio Palesi Maurizio Palesi 1 Instruction Set Architecture (ISA) Software instruction set Hardware Maurizio Palesi 2 1 Instruction Set Architecture (ISA) Applicazioni

Dettagli

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 15 aprile 2014 CALCOLATORI ELETTRONICI 15 aprile 2014 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1 Di seguito è riportato lo schema di una ALU a 32 bit in grado

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 Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

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

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing

Dettagli

Calcolatori Elettronici Parte X: l'assemblatore as88

Calcolatori Elettronici Parte X: l'assemblatore as88 Anno Accademico 2013/2014 Calcolatori Elettronici Parte X: l'assemblatore as88 Prof. Riccardo Torlone Università Roma Tre L'assemblatore as88 Disponibile presso: CD-ROM allegato al libro di testo del corso

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

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

Dettagli

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione

Dettagli

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000 AXO Achitettura dei Calcolatori e Sistema Operativo Instruction Set Architecture (ISA) e 68000 introduzione a ISA ISA - Instruction Set Architecture insieme delle istruzioni (instruction set) che possono

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Lezione n.9. Introduzione al linguaggio macchina

Lezione n.9. Introduzione al linguaggio macchina Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

La macchina programmata Instruction Set Architecture (1)

La macchina programmata Instruction Set Architecture (1) Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

MODELLO DLX IN UNISIM

MODELLO DLX IN UNISIM Architettura e descrizione del modello MODELLO DLX IN UNISIM RINGRAZIAMENTI : I materiali per questa presentazione sono tratti dal tutorial ufficiale di UNISIM - https://unisim.org/site/tutorials/start

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

[http://www.di.univaq.it/muccini/labarch]

[http://www.di.univaq.it/muccini/labarch] [http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 3: Introduzione a SPIM

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

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

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 Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly

Dettagli

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Sequenziale

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Sequenziale Calcolatori Elettronici T ISA DLX: Implementazione Tramite Struttura Sequenziale 1 E disponibile un interprete e simulatore (EasyDLX) per un insieme semplificato dell ISA DLX realizzato da Daniele Biagi

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Università degli Studi di Roma La Sapienza Architettura degli elaboratori II

Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Architettura degli elaboratori II Indice degli argomenti Le istruzioni assembly Categorie di istruzioni assembly Istruzioni

Dettagli

Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS

Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

MIPS! !

MIPS! ! MIPS! Sono descritte solamente le istruzioni di MIPS32, le pseudo-istruzioni, System Calls e direttive del linguaggio assembly che sono maggiormente usate.! MIPS è big-endian, cioè, lʼindirizzo di una

Dettagli

Assembly. Motivazioni. Programmazione Assembly

Assembly. Motivazioni. Programmazione Assembly Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Hazard sul controllo. Sommario

Hazard sul controllo. Sommario Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/28 Sommario Riorganizzazione

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici CPU a singolo ciclo assimiliano Giacomin Schema del processore (e memoria) Unità di controllo Condizioni SEGNALI DI CONTROLLO PC emoria indirizzo IR dato letto UNITA DI ELABORAZIONE

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI

ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI PROGETTO DELLA CPU MEMORIZZAZIONE DEGLI OPERANDI DOVE SONO MEMORIZZATI GLI OPERANDI NELLA CPU? ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI SCELTE PROGETTUALI: 1. DOVE SONO MEMORIZZATI

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Programmazione dello Z80

Programmazione dello Z80 Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

La Macchina Virtuale

La Macchina Virtuale Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2008/2009 Docente: ing. Salvatore

Dettagli

Operazioni di input e output in Fortran 90

Operazioni di input e output in Fortran 90 Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica

Dettagli

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Esempio di moltiplicazione come somma e spostamento

Esempio di moltiplicazione come somma e spostamento Esempio di moltiplicazione come somma e spostamento Implementare una moltiplicazione coinvolge algoritmi di shift e somma Istruzioni di Shift:movimento di bit: ROL Rd ROR Rd LSL Rd LSR ASR Rd Rd 22 x 35

Dettagli

Istruzioni di controllo del flusso

Istruzioni di controllo del flusso Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal

Dettagli

Lezione 16: L architettura LC-3

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

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:

Dettagli

Calcolatori Elettronici T Ingegneria Informatica. DLX: implementazione sequenziale

Calcolatori Elettronici T Ingegneria Informatica. DLX: implementazione sequenziale Calcolatori Elettronici T Ingegneria Informatica DLX: implementazione sequenziale Datapath e Unità di Controllo La struttura di una CPU, come tutte le reti logiche sincrone che elaborano dati, può essere

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

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. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Calcolatori Elettronici T Ingegneria Informatica 03 Linguaggio macchina

Calcolatori Elettronici T Ingegneria Informatica 03 Linguaggio macchina Calcolatori Elettronici T Ingegneria Informatica 03 Linguaggio macchina Stefano Mattoccia Instruction Set Architecture L insieme delle istruzioni e dei registri di una CPU costituiscono l Instruction Set

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

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

Aritmetica dei Calcolatori 2

Aritmetica dei Calcolatori 2 Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

Files, File I/O, File Sharing. Franco Maria Nardini

Files, File I/O, File Sharing. Franco Maria Nardini Files, File I/O, File Sharing Franco Maria Nardini UNIX file types UNIX non richiede una struttura interna del file. Dal punto di vista del sistema operativo c e un solo tipo di file. Struttura e interpretazione

Dettagli

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE Training per esperti TECNICHE AVANZATE DI I/O SU FILE Spesso, la decisione di dividere in processi differenti la produzione dei dati dall uso degli stessi viene presa perché occorre scrivere i dati su

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Matlab: Gestione avanzata dei file

Matlab: Gestione avanzata dei file Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma

Dettagli

ARCHITETTURA DEGLI ELABORATORI II - LABORATORIO

ARCHITETTURA DEGLI ELABORATORI II - LABORATORIO ARCHITETTURA DEGLI ELABORATORI II - LABORATORIO PRIMA ESERCITAZIONE Nota. Per informazioni generali, riferimenti bibliografici, link e altro si consulti la pagina web del corso: http://homes.di.unimi.it/

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

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

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Compilatore risorse display grafico LCD serie IEC-line

Compilatore risorse display grafico LCD serie IEC-line Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente

Dettagli