FSUB % ST (1), % ST (0) # ST (0) ST (0) ST (1) FSUB %ST(0), %ST(1) # ST (1) ST (0) ST (1) #cima alla pila ST(0) / ST(1)
|
|
- Lamberto Alfonso Casini
- 4 anni fa
- Visualizzazioni
Transcript
1 ADD intero:.long 1000 reale:.double 0.5 FIADDL intero # ST (0) ST (0)+intero FADDL reale # ST (0) ST (0)+reale FADDL %st(0), %ST(3) # ST (3) ST (3)+ ST (0) FADDP # ST (1) ST (1)+ ST (0) pop il destinatario, se non specificato è sempre in cima alla pila SUBTRACT1 intero:.long 1000 reale:.double 0.5 FISUBL intero # ST (0) ST (0) - intero FSUB % ST (1), % ST (0) # ST (0) ST (0) ST (1) FSUB %ST(0), %ST(1) # ST (1) ST (0) ST (1) FSUBP #cima alla pila ST(0)-ST(1) DIVIDE intero:.long 1000 reale:.double 0.5 FIDIVL intero # ST (0) ST (0) / intero FDIV % ST (1), % ST (0) # ST (0) ST (0) / ST (1) FDIV %ST(0), %ST(1) # ST (1) ST (0) / ST (1) FDIVP #cima alla pila ST(0) / ST(1) Esempio programma: (supponiamo A e B double) 1 FLDL A 2 FLDL B 2 FSUBRP 2 FLDL C 2 FLDLD 3 FADDP 4 FMULP
2 A A-B A-B (A-B)*C+D B C C+D D Esempio programma 2: (supponiamo A e B double) 1 FCOMPP 2 FSTSW 2 AND $0x4100, %AX 2 CMP $0x0000, %AX JE st_maggiore JNE min_uguale pila ZF CF 6 0 C3 C0 mi dicono la stessa cosa come quando faccio i conti con i naturali FCOMI(P) FCOMI %ST(1), %ST(0) JB min_uguale tutto ciò sostituisce l esempio di programma 2 di prima
3 Direttive FPU.FLOAT 1.3 #32 bit.double +15e-4 #64 bit 1.5*10^(-4).TFLOAT #80 bit NO!.QUAD #int su 64 bit NO! Debbuger: tutte le direttive su: info float x/nf g &indirizzo #f per i float, G=gigant 8 byte (64 bit) reale:.float 1.5 reale2:.double -32e+15 x/1fn &reale x/1fg &reale2 COSTANTI se metto le variabili nella parte text non possono essere riscritte.text diecicinque:.float 10.5 numerocinque:.double -5.0 FLDS diecicinque FLDL numerocinque solo per costanti intere posso usare la pila 10 FPU PUSHW $10 FILDS (%ESP) 5 PUSHW $5 FILDS (%ESP) #riporto lo stack com era prima ADD $4, %ESP SOTTOPROGRAMMI FPU sott: PUSH POP RET #ora ho le mie costanti che nessuno può toccare
4 convenzioni: 1) inizialmente la FPU è vuota 2) va lasciata vuota tranne che: 3) se il sottoprogramma ha valore di ritorno reale, ci deve essere un unico registro occupato che è ST(0), con il valore di ritorno supponiamo che alla fine di un programma siamo in questo stato ST(3) ST(2) ST(1) ST(0) risltato FXCH %ST(3) FCOMPP FCOMP ST(0) risltato chi chiama il sotto programma deve lasciare la pila libera, allora, dopo il sottoprogramma: CALL sottoprog FSTP ISTRRUZIONI DI CONFRONTO: F(I)COM(P) setta i bit c3_c0 e possono essere portati in AX con FSTSW e con delle AND si possono fare dei salti condizionati FCOMI setta il CF e lo ZF e consente di usare i salti condizionati come se dovessimo lavorare con interi Istruzione alternativa a queste: AH c3 c0 ZF CF F(I)COM(P) -> c3_c0 ->FSTSW -> SAHF -> Jcond Se a, b reali
5 if (a==b) if(fabs (a-b)<p*fabs(a)) // p fattore di precisione dell ordine è più prescisa EFFICIENZA: c++ algoritmi exe compilatore Assembler assemblatore Il codice che va in esecuzione è tanto efficiente quanto è efficiente il programma che li si da.. in c++ il compilatore ottimizza, in assembler non c è il compilatore che ottimizza Come ottimizzare: fase di FETCH operandi: - registri - memoria MOVL $0, %EAX // $0 è su 32 bit e prende tempo // 5 byte in memoria questa istruzione viene ottimizzata con: XOR %EAX, %EAX //1byte in memoria nei manuali si può trovare l informazione di quanto un istruzione si svolge in cicli di clock. Al processore costa a livello di ALU: - ist operative (costano poco 1-3, a accezione di moltiplicazioni e divisioni, che sono qualche decina di cicli di clock) - ist di controllo (JMP, CALL costano leggermente di più delle ist operative, costano molto di più in esecuzione) a livello di FPU: - ist aritmetiche (costano poco 1-3, a accezione di moltiplicazioni e divisioni, che costano molto, invece: radice quadrata, sin.. costano troppo (100 clock))
6 Non è possibile dalla lista del costo delle istruzioni desumere la durata di un programma Un programma è diverso da un processo!! Un programma è un foglio di testo, un processo è: - un programma - dati di ingresso - ambiente (hw/sw) - stato Non si può misurare un programma, si può misurare un processo in base all elenco di prima. Perché è difficile calcolare il tempo del processo: 1) multitasking 2) clock non ha velocità costante 3) memori cache 4) Il processore ha una coda di prefetch perché il processore non lavora come un entità unica ma è strutturato come una catena di montaggio, che coinvolgono strutture differenti che possono essere eseguite in parallelo. 5) l esecuzione è in genere non sequenziale Per ottimizzare: 1) allineamento dati e codice 0x 0 0x 1 0x 2 0x 3 0x 4 0x 5 0x 6 0x 7 x x x x byte consecutivi byte consecutivi MOVL $0, 0x.2 richiede 2 accessi alla memoria, anche se è possibile fare accessi alla memoria a 4 byte, infatti posso farlo a 4 byte solo se sono allineati a multipli di 2, 4 byte.data a:.byte 3 # k 16 b:.long 500 # k si dichiarano le variabili a seconda dell ordine di grandezza, prima tutti I long, poi tutti i word, infine tutti i byte.
7 oppure il modo furbo è:.balign N,F #è una direttiva con 2 parametr, Fè opzionale, messa #prima di una dichiarazione fa si che la #successiva variabile venga allineata a un multiplo di #N, in F c è il valore che voglio mettere dove vuoto.data a:.byte 3 # k 16.BALIGN 4,0 b:.long 500 # k x 0 a 0x 1 0 0x 2 0 0x 3 0 0x 4 0x 5 0x 6 b 0x 7 byte consecutivi byte consecutivi allineamento delle istruzioni: conviene allineare le istruzioni quando siamo sicuri che io da una istruzione all altra non ci posso passare.text Ist_1 # k 16 Ist_2 Ist_3 (RET /JMP).BALIGN 16,0 Ist_4 2) evitare MUL/DIV LEA disp(base, indice, scala), dest #sposta un indirizzo dentro un #destinatario dest= disp + base + indice * scala R32 I32 R32 R32 1,2,4,8 LEA dura un clock o poco più.. volendo calcolare Z=25X+3Y con Z, X e Y dei LONG ingegnere della strada: PUSH %EDX MOV Y, %EAX MOV $3, %EBX MUL %EBX #32
8 SUB $13500, %EAX MOV %EAX, Z #ho salvato in Z: 3Y MOV X, %EAX MOV $25, %EBX MUL %EBX ADD %EAX, Z POP %EDX sfruttando la LEA: MOV Y, %EAX LEA 13500(%EAX, %EAX,2), %EAX #ho salvato in Z: 3Y MOV X, %EAX LEA (%EBX,%EBX,4), %EBX # 5 LEA (%EBX,%EBX,4), %EBX # 5*5 ADD %EBX, %EAX MOV %EAX, Z è meglio usare poche SHL e LEA al posto di una MUL o una DIV 3) preferire istruzioni stringa quando ci sono vettori in memoria è estremamente più efficiente usare le operazioni stringa. 4) evitare salti condizionati ----non in sequenza---> costano molto Jcon ----in sequenza > costa poco, è meglio se va dritta (la JMP sia nulla) perché spende poco I salti condizionati fanno riferimento al reg dei flag. ADC e SBB usano il carry flag come operando comp: CMP $0, %EAX JE fine SHR %EAX ADC $0, %CL JMP comp al posto di ADC $0, %CL si poteva mettere JC /JNC ma costa molto di più Altre istruzioni: SETcon dest dest è un registro o una memoria a 8 bit, se con è vera dest vale 1, altrimenti vale 0.
9 CMOVcon src,dest src è un reg (16 o 32 bit) o una memoria (16 o 32 bit), il destinatario è un reg (16 o 32 bit) se la condizione è vera fa la MOV, altrimenti no. NON funziona su DoxBox. a = ( x > y )? x : y AX DX BX CMP %DX, %BX JA dopo MOV %DX, %AX JMP fine dopo: MOV %BX, %AX fine: si può scrivere: CMP %DX, %BX CMOVA %BX, %AX CMOVBE %DX, %AX Come si fanno un po di misure: TSC p un reg a 64 bit (rimesto counter) questo registro può essere letto con l istruzione: RDTSC che porta TSC in EDX_EAX Se si vuole misurare un pezzo di codice:.data ts_lo:.long 0 ts_hi:.long 0 RDTSC MOV %EDX, ts_hi MOV %EAX, ts_lo #CODICE da esaminare RDTSC SUB ts_lo, %EAX SBB ts_hi, %EDX in EAX_EDX c è il tempo del codice più le prime tre operazioni (effetto sonda) qword_output stampa il numero naturale dentro EAX_EDX (quanto c ha messo il processore a eseguire il codice)
1.1.1 Esercizio conta le occorrenze di un carattere in una stringa
1.1.1 Esercizio conta le occorrenze di un carattere in una stringa Scrivere un programma che legge una stringa di memoria lunga un numero arbitrario di caratteri (ma terminata da \0), inserita in un buffer
DettagliIntroduzione. Architettura
Introduzione Questo simulatore fornisce una versione semplificata dell assemblatore sfruttato dal processore 8088 trasformando il codice inserito in input in codice eseguibile e ne simula l esecuzione
DettagliLA CPU INTEL Vantaggi dei programmi Assembly
1 LA CPU INTEL 8086 Vantaggi dei programmi Assembly L utilizzo del linguaggio Assembly anzichè di un linguaggio ad alto livello (tipo C o Pascal) è talvolta giustificato dalla maggiore efficienza del codice;
DettagliProgrammazione in linguaggio assembly per architetture Intel 8088
Programmazione in linguaggio assembly per architetture Intel 8088 Marco Di Felice 1 Università of Bologna Dipartimento di Scienze dell Informazione Corso di Architettura degli Elaboratori mail: difelice@cs.unibo.it
DettagliCALCOLATORI ELETTRONICI II
CALCOLATORI ELETTRONICI II LE ISTRUZIONI ARITMETICHE E DI MANIPOLAZIONE DEI BIT Argomenti della lezione Le istruzioni aritmetiche Le istruzioni di manipolazione dei bit Le istruzioni aritmetiche Istruzioni
DettagliCPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore
CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura
Dettagli1.1 Rappresentazione di numeri naturali ed interi
1.1 Rappresentazione di numeri naturali ed interi La ALU è in grado di eseguire operazioni logiche (AND, OR, NOT, etc.) su stringhe di bit ed operazioni aritmetiche, interpretando le stringhe di bit che
DettagliNumeri Reali. Sottoinsieme discreto dei Numeri Razionali. Sequenze di bit. Underflow. Densità che dipende dal numero di bit usati
Numeri Reali Sottoinsieme discreto dei Numeri Razionali Sequenze di bit Overflow Underflow Overflow 0 Densità che dipende dal numero di bit usati 1 Numeri Reali Virgola fissa (1/5) Si usa un numero fisso
DettagliArchitettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione
Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina
DettagliIstruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
DettagliLinguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche
3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni
DettagliEsercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio Esercizio 38...
Sommario Esercizio 1... 3 Esercizio 2... 3 Esercizio 3... 3 Esercizio 4... 3 Esercizio 5... 3 Esercizio 6... 4 Esercizio 7... 4 Esercizio 8... 5 Esercizio 9... 5 Esercizio 10... 6 Esercizio 11... 6 Esercizio
DettagliI sistemi. Sistema: è un insieme di parti o componenti correlati tra di loro in modo che tale insieme possieda una struttura e abbia un comportamento.
I sistemi Sistema: è un insieme di parti o componenti correlati tra di loro in modo che tale insieme possieda una struttura e abbia un comportamento. Classificazione dei sistemi: Sistemi artificiali: creati
DettagliDal linguaggio macchina al linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Dal linguaggio macchina al linguaggio C Programma sorgente, compilatore, file oggetto, file eseguibile programma sorgente
DettagliL Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica
L Assembler 8086 M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Si suddividono in: istruzioni per il calcolo binario istruzioni
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliProcessore Danilo Dessì. Architettura degli Elaboratori.
Processore 888 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it 888 L 888 è un processore che è stato progettato dalla Intel nel periodo 1978/1979 La sua architettura è simile a quella
DettagliFetch Decode Execute Program Counter controllare esegue prossima
Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo
DettagliPASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO
PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO Programma diviso in due moduli: MA.ASM: programma pricipale e funzioni di utilità MB.ASM: sottoprogramma di elaborazione Primo modulo: MA.ASM EXTRN alfa: BYTE
DettagliMemoria e altro. Contenuto della lezione. Richiami Evoluzione Gerarchia Organizzazione Allineamento Indirizzamento Ecc
Memoria e altro Contenuto della lezione Richiami Evoluzione Gerarchia Organizzazione Allineamento Indirizzamento Ecc Prima di tutto un ripasso di elettronica. Logica TTL ¼ di 7400 Soglia di rumore Registro
DettagliArchitettura del set di istruzioni (ISA)
Architettura del set di istruzioni (ISA) Calcolatori Elettronici-Ingegneria Telematica 1 Instruction Set Architecture Software Hardware Application (Netscape) Compiler Assembler Processor Memory Digital
DettagliCalcolatori Elettronici Lezione A2 Architettura i8086
Calcolatori Elettronici Lezione A2 Architettura i8086 Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Architettura i8086 Sommario: L i8086 Registri Accesso alla memoria: indirizzi
Dettaglinot ah ; ah = F7h (247) perche' il complemento a 1 di 8 ( )
ESERCIZIO 1 Programma di calcoli aritmetici e logici ; locazione origine del seguente codice mov ax,24 ; ax = 24 mov cx,0ah ; cx = 10 div cx ; dx = 4 (resto) e ax = 2 (quoziente) mov al, 4 ; al = 4 mov
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088
UNIVERSITÀ DEGLI STUDI DI CAGLIARI acoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 888 Danilo Dessì danilo_dessi@unica.it Processore 888 Il processore
DettagliIL COPROCESSORE MATEMATICO Il coprocessore 8087 Architettura interna Registri e Flags Tipi di dato Istruzioni Esempio
1 IL COPROCESSORE MATEMATICO 8087 Il coprocessore 8087 Architettura interna Registri e Flags Tipi di dato Istruzioni Esempio 2 Il coprocessore 8087 L 8087 è un microprocessore dedicato che può essere opzionalmente
DettagliParte 3. Linguaggio Macchina e Assembler
Parte 3 Linguaggio Macchina e Assembler LINGUAGGIO MACCHINA Descriveremo una CPU MINIMA dotata di un certo insieme di istruzioni I ciascuna realizzata da un corrispondente circuito C I. Questo insieme
DettagliProcessore PC. Spazio di indirizzamento. la ALU (Arithmetic and Logic Unit) la FPU (Floating Point Unit)
Processore PC Faremo riferimento al cosiddetto processore PC, che rappresenta una schematizzazione dei processori a 32 bit presenti nei Personal Computer. Il processore è costituito da due unità fondamentali:
Dettagli; ; Definizione costanti
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 TITLE
DettagliSistemi Operativi. ASSEMBLER per Minix Lez. 17
Sistemi Operativi ASSEMBLER per Minix Lez. 17 Minix IA-32 Assembly Language Un linguaggio di programmazione più vicino al modo di esprimersi umano, del linguaggio macchina ma ancora molto vicino al linguaggio
DettagliElementi di Architettura
Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di
DettagliCenni ad Assembly Intel
Cenni ad Assembly Intel Luca Abeni April 17, 2015 Architerrura Intel Utilizzata sulla maggior parte dei laptop, desktop e server moderni Lunga storia Dagli anni 70 (Intel 8080-8 bit!)......fino ad oggi
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088 Danilo Dessì danilo_dessi@unica.it Esercizi 1. Scrivere un
DettagliESERCITAZIONE 4. Livello d architettura dell insieme di istruzioni Decodifica dell indirizzo
ESERCITAZIONE 4 Livello d architettura dell insieme di istruzioni Decodifica dell indirizzo 2 Livello d architettura dell insieme di istruzioni 3 Livello d architettura dell insieme di istruzioni (1) 1)
DettagliIl linguaggio macchina
Il linguaggio macchina Un istruzione in linguaggio macchina è, sul piano astratto, una tripla strutturata: i = (f, P1, P2) ove: f F insieme dei codici operativi del processore, cioè delle operazioni elementari
DettagliES:reg16. MOV DS, AX ; e quindi in DS
Corso di Fondamenti di Informatica 2 CdL Ingegneria Informatica Ing. Franco Zambonelli ARCHITETTURA DEGLI ELABORATORI: LE ISTRUZIONI dell 8086/8088 Lucidi Realizzati in Collaborazione con: Prof. Letizia
DettagliConfronti e salti condizionati
Confronti e salti condizionati I confronti tra numeri x e y sfruttano l effetto di / x,y sui flag. Occorre ricordare che è unica, ma l effetto sui flag riflette l interpretazione unsigned o signed dei
DettagliEsempi di Programmi Assembly. Luigi Palopoli, Luca Abeni
Esempi di Programmi Assembly Luigi Palopoli, Luca Abeni Scopo della lezione In questa lezione vedremo alcuni esempi di programmi (o frammenti di programmi) in vari linguaggi assembly per renderciconto
DettagliFamiglia dei processori INTEL
Famiglia dei processori INTEL 1975 2002 8080-8086 - 80286-80386 - 80486 - Pentium - Pentium II-III-IV - Itanium Compatibilità del SW (assemby) 8086 80286 80386 80486 Pentium Pentium III Perché studiare
DettagliL insieme delle istruzioni (6)
L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso
DettagliNel microprocessore 8086 abbiamo una gran quantità di registri
I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1
Dettagliiafelice at cs(dot)unibo(dot)it
Corso di Archite@ura degli Elaboratori Modulo di Assembly ASSEMBLY 8088 Bruno Iafelice Università di Bologna iafelice at cs(dot)unibo(dot)it 1 ArgomenE Formato delle istruzioni Indirizzamento Istruzioni
DettagliIntroduzione al linguaggio macchina. Istruzione l/m
Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliDomande di Reti Logiche compito del 08/01/2019
NUOVO PROGRAMMA (a.a. 2018/19) MOV 0x00, 0xFF L istruzione scritta sopra: Copia la costante 0x00 (su 8 bit) nella cella di memoria di indirizzo 0xFF Copia il contenuto della cella di memoria di indirizzo
DettagliIstruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
DettagliProgrammazione Assembly per 8088: Esercizi svolti
Programmazione Assembly per 8088: Esercizi svolti Marco Di Felice 13 dicembre 2006 1 Esercizio 1 (esercizio 1 del Tanenbaum, Appendice C) TESTO. Dopo l esecuzione dell istruzione MOV AX, 702 qual è il
DettagliCalcolatori 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
DettagliCapitolo 6 Il repertorio delle istruzioni. Parte I
Capitolo 6 Il repertorio delle istruzioni Parte I www.isti.cnr.it/people/ Programmi Programma = traduzione in un linguaggio formale (linguaggio di programmazione con una sua sintassi) di un algoritmo (procedimento
DettagliDal linguaggio macchina al linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliLe architetture INTEL
Le architetture INTEL Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it 1/24 Le prime architetture Intel 1978 8086. Estensione del
DettagliESERCITAZIONE Operandi Architettura ad 1 operando Architettura a 2 operandi Architettura a 3 operandi
ESERCITAZIONE 9 Sommario Operandi Registri dedicati Gestione di sottoprogrammi Meccanismi di interruzione 1. Operandi Le prestazioni di una CPU possono variare considerevolmente a seconda del numero di
Dettagli)21'$0(17,',,1)250$7,&$,,
)21'$0(17,',,1)250$7,&$,, (6(5&,7$=,21(Qƒ,//,1*8$**,2$66(0%/(5 Indicare (in binario) lo stato dei flag C, O, S, Z, P e del registro AH dopo l esecuzione delle due MOV AH, 70 ADD AH, 70 La prima istruzione
DettagliLaboratorio di Architettura degli Elaboratori
Laboratorio di Architettura degli Elaboratori Graziano Pravadelli Dipartimento di Informatica Università di Verona Introduzione all assembly In questa lezione vengono introdotti i concetti fondamentali
DettagliAssembly. Modello x86
Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore
DettagliIstruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
DettagliLezione Uno: Il linguaggio Assembly e i metodi di indirizzamento (libro di testo pag )
Ud6: Linguaggio Assembly Lezione Uno: Il linguaggio Assembly e i metodi di indirizzamento (libro di testo pag. 119-127) Caratteristiche di un linguaggio Assembly Basso livello Diverso per ogni architettura
DettagliStruttura 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
DettagliIl processore Pentium
Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in
DettagliIntroduzione ai linguaggi di programmazione
Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Introduzione ai linguaggi di programmazione Giorgio
DettagliDomande di Reti Logiche compito del 29/01/2019
CMP %EAX, %EBX JB dopo Il codice scritto sopra salta all etichetta dopo se: EBX
DettagliSET/CLEAR LOAD DATA FROM STRING
SET/CLEAR STD CLD AZIONE: Imposta ad 1 (STD) o a zero (CLD) il valore del flag DF. Sono istruzioni senza parametri. Vanno sempre messi!! FLAG di cui viene modificato il contenuto: Nessuno (a parte DF).
DettagliIstruzioni di modifica della sequenza di elaborazione
Istruzioni di modifica della sequenza di elaborazione Permettono di modificare la sequenza di esecuzione delle istruzioni di un programma, normalmente controllata dal meccanismo automatico di avanzamento
DettagliIl 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
DettagliManualetto. Aggiornato al 31/07/2014
Sistema emulato Periferiche 8086 Manualetto s165178 @ studenti.polito.it Aggiornato al 31/07/2014 Canali del sistema emulato Routine Descrizione Canale Indice IVT ISR_PA_IN L 8086 riceve un dato dalla
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Corso di Laurea Triennale in Informatica Università degli Studi di Bari Laboratorio lez1: il processore 8086/88 Prof. S.Pizzutilo Microprocessori INTEL per il PC 8080 (1974)
DettagliEsercizi per il corso di Architettura dei Calcolatori. Anno accademico 2008/09. Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione )
Esercizi per il corso di Architettura dei Calcolatori Anno accademico 2008/09 Si prevede l utilizzo dell emulatore Eniac ( presentato a lezione ) 1) Caricare nel registro accumulatore AX il contenuto della
DettagliLaboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 29/01/07 Nota Questi lucidi sono tratti
DettagliLinguaggio macchina. Capitolo 10. Linguaggio macchina. n Insieme delle istruzioni (instruction set) che la CPU può eseguire
Linguaggio macchina Capitolo 10 Linguaggio macchina n Insieme delle istruzioni (instruction set) che la CPU può eseguire Elementi di un istruzione macchina n Codice operativo Specifica l operazione da
DettagliOgni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.
Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Campo Codice Operativo Campo Operandi K bit n-k bit n bit 1 Istruzione
DettagliProgrammazione Assembly
Programmazione Assembly Giacomo Fiumara giacomo.fiumara@unime.it Anno Accademico 2013-2014 1 / 205 La famiglia dei processori Pentium Processore 4004 (1969) bus indirizzi a 12 bit bus dati a 4 bit Processore
DettagliLINGUAGGIO ASSEMBLER PER 8086/8088
LINGUAGGIO ASSEMBLER PER 8086/8088 Linguaggio Macchina insieme di istruzioni che un elaboratore è in grado di eseguire direttamente strettamente correlato alla realizzazione fisica dell'elaboratore Esempio
DettagliBreve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086)
PROF. CARMELO CALARCO Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086) 1 IL LINGUAGGIO ASSEMBLY Il linguaggio assembly è un linguaggio di programmazione a basso livello. Per linguaggi di basso livello
DettagliI.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086
I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi Elementi di Assembly 8086 1 Assembly 8086 I registri Per poter elaborare le informazioni ricevute dall esterno,
DettagliAccesso 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
DettagliDomande di Reti Logiche - compito del 16/07/2019
NUOVO PROGRAMMA (a.a. 28/9) Domande di Reti Logiche - compito del 6/7/29 Barrare una sola risposta per domanda Il punteggio finale è - (n. di risposte errate + n. domande lasciate in bianco) Usare lo spazio
DettagliIstruzioni di controllo del flusso
Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal
DettagliSistemi di Elaborazione a Microprocessore Procedure e Macro. L A ssem bler Procedure e Macro. M. Rebaudengo - M.
L A ssem bler 8086 Procedure e Macro M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Le procedure L Assembler 8086 permette l uso
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliIntroduzione al linguaggio macchina
Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliCalcolatore: sottosistemi
Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria Calcolatore: organizzazione a bus Il processore o CPU Unità di controllo
Dettagli1 Esercizi con architettura a 1 bus
1 Esercizi con architettura a 1 bus 1.1 Fetch dell istruzione NOTA: l istruzione ClearY azzera il registro Y mentre l istruzione CB imposta a 1 il bit di riporto/prestito in modo da sommare/sottrarre 1.
DettagliLinguaggio Assembler Intel -cenni - Calcolatori Elettronici B a.a. 2005/2006 Massimiliano Giacomin
Linguaggio Assembler Intel -cenni - Calcolatori Elettronici B a.a. 2005/2006 Massimiliano Giacomin 1 Un po di storia 1978: architettura 8086, a 16 bit, con registri dati a 16 bit e spazio di indirizzamento
DettagliLinguaggio Assemblativo della famiglia 80x86
Linguaggio Assemblativo della famiglia 80x86 Dr. Luciano Capitanio BOZZA PRELIMINARE Assembler 80x86 Dr. Luciano Capitanio 1 Linguaggio Assemblativo della famiglia 80x86 Obiettivo Verranno forniti gli
DettagliLe istruzioni del PD32
Testo di rif.to: [Congiu] - 3.6, 3.8 (pg. 112 119) Le istruzioni del PD32 01.f Classi di istruzioni Programmazione dei protocolli di I/O Struttura del processore PD32 1 Classi di istruzioni del PD32 Le
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliCapitolo 10 La memoria
Capitolo 10 La memoria Memoria - classificazione Funzionalità Memoria di sola lettura (ROM): per contenere i programmi che inizializzano la macchina all accensione + il kernel del OS Memoria di lettura/scrittura
DettagliTutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.
I processori Intel Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086. L'8086 e' un processore a 16 bit quindi i suoi registri potranno
DettagliAlgoritmi e linguaggi di programmazione
Algoritmi e linguaggi di programmazione Giorgio Valentini e mail: valentini@dsi.unimi.it DSI Dipartimento di Scienze dell Informazione Università degli Studi di Milano 1 Definizione intuitiva di algoritmo
DettagliPolitecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri
Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Fondamenti di Informatica II prova 13 febbraio 2015 Matricola/codice persona Cognome Nome Durata prova:
DettagliIntroduzione a ISA. Il Livello ISA Instruction Set Level Architecture. Livello ISA e Motorola 68000: introduzione. Che cosa descrive ISA
Introduzione a ISA Il Livello ISA Instruction Set Level Architecture Livello ISA e Motorola 68000: introduzione Livello ISA (Instruction Level Architecture): insieme delle istruzioni (instruction set)
DettagliCalcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti
Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti Compito Num. 1 COGNOME:...NOME:... 1) (20%) Si vuole realizzare una CPU
Dettagliinformatica di base per le discipline umanistiche
informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università di Pavia (per iniziare ) quinta lezione: la sintassi
DettagliPag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.
DettagliCorso 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
DettagliDomande di Reti Logiche compito del 6/6/2017
Barrare una sola risposta per ogni domanda Il punteggio finale è - (n. di risposte errate + n. domande lasciate in bianco) Usare lo spazio bianco sul retro del foglio per appunti, se serve Sia dato un
DettagliPROBLEMI E ALGORITMI
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
DettagliLABORATORIO DI SISTEMI
ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 2 LABORATORIO DI SISTEMI OGGETTO: 1) Scrivere un programma, in linguaggio Assembly, per una CPU Intel 8086, che sommi due numeri (var_1,
Dettagli