Linguaggio Assemblativo della famiglia 80x86

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linguaggio Assemblativo della famiglia 80x86"

Transcript

1 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 elementi necessari per la programmazione nel linguaggio assemblativo della famiglio di CPU 80x86. Assembler 80x86 Dr. Luciano Capitanio 2 1

2 Linguaggio Assemblativo Della Famiglia 80x86 Contenuti Risorse Convenzioni Architettura Dati primitivi e operazioni Metodi di indirizzamento Strutture di controllo Sottoprogrammi Interrupts Chiamate al sistema operativo Assembler 80x86 Dr. Luciano Capitanio 3 Risorse 1 di comp.lang.asm.x86 Assembler 80x86 Dr. Luciano Capitanio 4 2

3 Risorse 2 di Assembler 80x86 Dr. Luciano Capitanio 5 Architettura registri di segmento da 16 bit SS CS DS ES FS GS Compatibilità verso il basso: Le aree a colore pieno sono ereditate dall architettura a 16 bit (8086) 8 registri general purpose EFLAGS EIP EAX EBX ECX EDX EBP ESP EDI ESI 4 Giga byte 4 G - 1 Spazio di indirizzamento in memoria 0F FFFF 16 bit 16 bit Assembler 80x86 Dr. Luciano Capitanio 6 3

4 Dati Primitivi E Operazioni Dati primitivi Interi senza segno Interi con segno Caratteri Stringhe e vettori multidimensionali Reali floating point Assembler 80x86 Dr. Luciano Capitanio 7 Dati Primitivi E Operazioni Interi senza segno size Range byte word longword Assembler 80x86 Dr. Luciano Capitanio 8 4

5 Dati Primitivi E Operazioni Interi con segno size Range byte word longword ,768 32,767-2,147,483,648 2,147,483,647 Assembler 80x86 Dr. Luciano Capitanio 9 Dati Primitivi E Operazioni Assembler 80x86 Dr. Luciano Capitanio 10 5

6 Call & ret L istruzione Call <routine_address> salva nello stack l indirizzo dell istruzione ad essa successiva <call_next>e salta all indirizzo <routine_address> L istruzione ret esegue un pop dell indirizzo salvato dalla call <call_next> e riprende l esecuzione del programma chiamante dall indirizzo pop-ato. Assembler 80x86 Dr. Luciano Capitanio 11 Call & ret I parametri di una funzione possono essere passati attraverso lo stack: Msg1 db Dammi un intero,0.. Push msg1 Call get_int Assembler 80x86 Dr. Luciano Capitanio 12 6

7 Call & ret La convenzione generalmente usata sui PC impone che i sottoprogrammi possano essere chiamati con sicurezza in qualunque parte del programma chiamante. Questa convenzione impone le regole che vedremo nelle pagine seguenti Assembler 80x86 Dr. Luciano Capitanio 13 Call & ret 1) I parametri non sono mai pop-ati dall stack. Perché? In caso contrario si il return address verrebbe distrutto: Stack dopo la call: ESP +4 : parameter ESP : Return Address Assembler 80x86 Dr. Luciano Capitanio 14 7

8 Call & ret 2)Lo scheletro di una routine è: Subprogram label: push ebp mov ebp,esp ; subprogram code pop ebp ret Assembler 80x86 Dr. Luciano Capitanio 15 Call & ret 3)Quando un sottoprogramma termina qualcuno deve pulire lo stack. Convenzione C: il programma chiamante pulisce lo stack Push dword 1 Call fun Add esp, 4 ; oppure pop ecx più veloce Convenzione Pascal: il sottoprogramma deve pulire lo stack Assembler 80x86 Dr. Luciano Capitanio 16 8

9 Strutture di controllo Control structures decide what to do based on comparisons of data. In assembly, the result of a comparison is stored in the FLAGS register to be used later. The 80x86 provides the CMP instruction to perform comparisons. Assembler 80x86 Dr. Luciano Capitanio 17 Strutture di controllo The FLAGS register is set based on the difference of the two operands of the CMP instruction. The operands are subtracted and the FLAGS are set based on the result, but the result is not stored anywhere. If you need the result use the SUB instead of the CMP instruction. Assembler 80x86 Dr. Luciano Capitanio 18 9

10 Strutture di controllo For unsigned integers, there are two flags that are important: the zero (ZF) and carry (CF) ags. cmp vleft, vright The difference of vleft - vright is computed and the flags are set according. If the difference of the of CMP is zero, vleft = vright, then ZF is set (i.e., 1) and the CF is unset (i.e., 0). If vleft > vright, then ZF is unset and CF is unset (no borrow). If vleft < vright, then ZF is unset and CF is set (borrow). Assembler 80x86 Dr. Luciano Capitanio 19 Strutture di controllo For signed integers, there are three ags that are important: ZF(zero), OF(overflow/underflow) and SF(sign). Cmp vleft, vright If vleft=vright ZF=1 If vleft>vright ZF=0 & SF=OF (?) If vleft>vright ZF=0 & SF<>OF (?) If there is no overflow, then the difference will have the correct value and must be non-negative. Thus SF=OF =0. Assembler 80x86 Dr. Luciano Capitanio 20 10

11 Strutture di controllo JZ branches only if ZF is set JNZbranches only if ZF is unset JO branches only if OF is set JNO branches only if OF is unset JS branches only if SF is set JNS branches only if SF is unset JC branches only if CF is set JNC branches only if CF is unset JP branches only if PF is set JNP branches only if PF is unset Assembler 80x86 Dr. Luciano Capitanio 21 Strutture di controllo Variations of the jump instruction: JMP SHORT 4 :This jump is very limited in range. It can only move up or down 128 bytes in memory. (displacement 1 byte long). JMP NEAR LABEL: This jump is the default type for both unconditional and conditional branches, it can be used to jump to any location in a segment.(displacement 2 o 4 byte long) IMP FAR LABEL: This jump allows control to move to another code segment. Assembler 80x86 Dr. Luciano Capitanio 22 11

12 Strutture di controllo if ( EAX == 0 ) EBX = 1; else EBX = 2; 1 cmp eax, 0 ; set flags (ZF set if eax - 0 = 0) 2 jz thenblock ; if ZF is set branch to thenblock 3 mov ebx, 2 ; ELSE part of IF 4 jmp next ; jump over THEN part of IF 5 thenblock: 6 mov ebx, 1 ; THEN part of IF 7 next: Assembler 80x86 Dr. Luciano Capitanio 23 Strutture di controllo if ( EAX >= 5 ) EBX = 1; else EBX = 2; 1 cmp eax, 5 2 js signon ; goto signon if SF = 1 3 jo elseblock ; goto elseblock if OF = 1 and SF = 0 4 jmp thenblock ; goto thenblock if SF = 0 and OF = 0 5 signon: 6 jo thenblock ; goto thenblock if SF = 1 and OF = 1 7 elseblock: 8 mov ebx, 2 9 jmp next 10 thenblock: 11 mov ebx, 1 12 next : Assembler 80x86 Dr. Luciano Capitanio 24 12

13 Strutture di controllo Signed JE branches if vleft = vright JNEbranches if vleft <> vright JL, JNGE branches if vleft < vright JLE, JNG branches if vleft<=vright JG, JNLE branches if vleft >vrightt JGE, JNLbranches if vleft>=vright Unsigned JE branches if vleft = vright JNEbranches if vleft <> vright JB, JNAE branches if vleft < vright JBE, JNA branches if vleft<=vright JA, JNBE branches if vleft > vright JAE, JNA branches if vleft>=vright Assembler 80x86 Dr. Luciano Capitanio 25 Strutture di controllo if ( EAX >= 5 ) EBX = 1; else EBX = 2; 1 cmp eax, 5 2 jge thenblock 3 mov ebx, 2 4 jmp next 5 thenblock: 6 mov ebx, 1 7 next: Assembler 80x86 Dr. Luciano Capitanio 26 13

14 Strutture di controllo if ( condition ) then block ; else else block ; 1 2 ; code to set FLAGS jxx else_block ; select xx so that branches if condition false 3 ; code for then block 4 jmp endif 5 else_block: 6 ; code for else block 7 endif: Assembler 80x86 Dr. Luciano Capitanio 27 Strutture di controllo if ( condition ) then block ; 1 ; code to set FLAGS 2 jxx endif ; select xx so that branches if condition false 3 ; code for then block 4 endif: Assembler 80x86 Dr. Luciano Capitanio 28 14

15 Strutture di controllo The while loop is a top tested loop: while( condition ){ body of loop; } 1 while: 2 ; code to set FLAGS based on condition 3 jxx endwhile ; select xx so that branches if false 4 ; body of loop 5 jmp while 6 endwhile:: Assembler 80x86 Dr. Luciano Capitanio 29 Strutture di controllo The do while loop is a bottom tested loop: do { body of loop; } while( condition ); 1 do: 2 ; body of loop 3 ; code to set FLAGS based on condition 4 jxx do ; select xx so that branches if true Assembler 80x86 Dr. Luciano Capitanio 30 15

L assembler 80x86. Corso di Calcolatori Elettronici II Prof. Giulio Iannello

L assembler 80x86. Corso di Calcolatori Elettronici II Prof. Giulio Iannello L assembler 80x86 Corso di Calcolatori Elettronici II Prof. Giulio Iannello 6OLGHDFXUDGL6LPRQ3LHWUR5RPDQR Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II La rappresentazione

Dettagli

Architetture I. Lez. V La preparazione dei programmi A.A. 09/10. Architetture degli Elaboratori I Danilo Bruschi

Architetture I. Lez. V La preparazione dei programmi A.A. 09/10. Architetture degli Elaboratori I Danilo Bruschi Architetture I Lez. V La preparazione dei programmi Preparazione programmi La sequenza di azioni da intraprendere per trasformare un programma scritto in assembler, o in altro linguaggio evoluto, in un

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

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register Corso di Calcolatori Elettronici I A.A. 2010-2011 Strutture di controllo del flusso di esecuzione in assembler Lezione 25 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di

Dettagli

Pseudo-operatori. Lo pseudo-operatore ORG

Pseudo-operatori. Lo pseudo-operatore ORG Pseudo-operatori Viene usato per inizializzare il Program Location Counter (PLC) Sintassi: ORG $HEXADDR Lo pseudo-operatore END Viene usato per terminare il processo di assemblaggio e saltare all entry

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

Famiglia dei processori INTEL

Famiglia 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

Dettagli

Istruzioni di modifica della sequenza di elaborazione

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

Dettagli

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

Dettagli

Cenni ad Assembly Intel

Cenni 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

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

Assembler Intel 80x86: Set delle istruzioni

Assembler Intel 80x86: Set delle istruzioni Assembler Intel 80x86: Set delle istruzioni Calcolatori Elettronici B aa 2004/2005 Massimiliano Giacomin 1 Classi di istruzioni Il set di istruzioni dell Assembler Intel 80x86 può essere suddiviso nelle

Dettagli

Architettura degli Elaboratori

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

Dettagli

Programmazione in linguaggio assembly per architetture Intel 8088

Programmazione in linguaggio assembly per architetture Intel 8088 Programmazione in linguaggio assembly per architetture Intel 8088 Marco Di Felice 1 Università of Bologna Dipartimento di Scienze dell Informazione Corso di Architettura degli Elaboratori mail: difelice@cs.unibo.it

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...

Dettagli

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi

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

Linguaggio macchina e linguaggio assembly

Linguaggio macchina e linguaggio assembly FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Linguaggio macchina e linguaggio assembly Formato delle istruzioni 15 8 7 0 gruppo modo di indirizzamento codice dell

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...

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

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Corso di Laurea Triennale in Informatica Università degli Studi di Bari Anno Accademico 2009-2010 Laboratorio lez1: il processore 8086/88 Prof. S.Pizzutilo I processori Intel

Dettagli

p = 7. E = bias + p = = E = s e m

p = 7. E = bias + p = = E = s e m 255 1 0.125 0 127 1 0.25 0 63 1 0.5 1 31 1 15 1 7 1 3 1 1 1. Rappresentazione binaria: 11111111.001 2. Scorrere la virgola: 3. Bit di segno: Numero positivo 0. 4. Esponente: 5. Mantissa: 1111111001 (ottenuta

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

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

L architettura Intel

L architettura Intel Architettura degli Elaboratori e delle Reti Lezione 33 L architettura Intel Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 33 1/29 Le prime

Dettagli

Processore PC. Spazio di indirizzamento. la ALU (Arithmetic and Logic Unit) la FPU (Floating Point Unit)

Processore 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

L insieme delle istruzioni (6)

L 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

Dettagli

Architettura del set di istruzioni (ISA)

Architettura 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

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

I.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 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,

Dettagli

Elementi di sicurezza e Privatezza. Lezione 8: memory error exploit

Elementi di sicurezza e Privatezza. Lezione 8: memory error exploit Elementi di sicurezza e Privatezza Lezione 8: memory error exploit Situazione I meccanismi di controllo degli accessi consentono un controllo particolarmente efficace su chi può fare cosa in un sistema

Dettagli

L architettura Intel

L architettura Intel Architettura degli Elaboratori e delle Reti Lezione 33 L architettura Intel Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 33 1/30 Le prime

Dettagli

( ISA ) Architettura del Set di Istruzioni

( ISA ) Architettura del Set di Istruzioni ( ISA ) Architettura del Set di Istruzioni Instruction Set Architecture Software Hardware Application Compiler Assembler Processor Memory Digital Design Circuit Design Operating System I/O system Datapath

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

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

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly Architettura degli Elaboratori e delle Reti Lezione 12 Assembly II Set di Istruzioni MIPS Strutture di controllo in Assembly Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università

Dettagli

Le architetture INTEL

Le 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

Dettagli

LA CPU INTEL Vantaggi dei programmi Assembly

LA CPU INTEL Vantaggi dei programmi Assembly 1 LA CPU INTEL 8086 Vantaggi dei programmi Assembly L utilizzo del linguaggio Assembly anzichè di un linguaggio ad alto livello (tipo C o Pascal) è talvolta giustificato dalla maggiore efficienza del codice;

Dettagli

MC68000: programmazione assembly

MC68000: programmazione assembly Corso di Calcolatori Elettronici I MC68000: programmazione assembly Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

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

L architettura Intel

L architettura Intel Architettura degli Elaboratori e delle Reti Lezione 33 L architettura Intel Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 33 1/30 Le prime

Dettagli

1.1.1 Esercizio conta le occorrenze di un carattere in una stringa

1.1.1 Esercizio conta le occorrenze di un carattere in una stringa 1.1.1 Esercizio conta le occorrenze di un carattere in una stringa Scrivere un programma che legge una stringa di memoria lunga un numero arbitrario di caratteri (ma terminata da \0), inserita in un buffer

Dettagli

Architettura degli Elaboratori e delle Reti. L ISA di Intel. Proff. A. Borghese, F. Pedersini

Architettura degli Elaboratori e delle Reti. L ISA di Intel. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti L ISA di Intel Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano Patterson, sezione 2.17 1/38 Sommario

Dettagli

Ing. Gabriele MONTI Controllo del flusso

Ing. Gabriele MONTI Controllo del flusso 1 Istruzioni per il controllo del flusso Ogni programma esegue automaticamente in successione le istruzioni i cui codici sono posti in memoria in locazioni successive. Ci si può immaginare che un programma

Dettagli

Architettura degli Elaboratori e delle Reti. Lezione 29. Proff. A. Borghese, F. Pedersini

Architettura degli Elaboratori e delle Reti. Lezione 29. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Lezione 29 L architettura Intel Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano Patterson, sezione

Dettagli

26 April CHIAMATA A PROCEDURE PROCEDURE ANNIDATE PROCEDURA RICORSIVE I. Frosio

26 April CHIAMATA A PROCEDURE PROCEDURE ANNIDATE PROCEDURA RICORSIVE I. Frosio CHIAMATA A PROCEDURE PROCEDURE ANNIDATE PROCEDURA RICORSIVE I. Frosio SOMMARIO Procedure di sistema (syscall) / direttive Chiamata a procedura semplice Chiamata a procedure intermedia Procedure ricorsive

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

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

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

Dettagli

Programmazione Assembly Note su Microsoft Assembler

Programmazione Assembly Note su Microsoft Assembler Programmazione Assembly Note su Microsoft Assembler Giacomo Fiumara giacomo.fiumara@unime.it Anno Accademico 2012-2013 1 / 254 Microsoft Assembler Masm32.com installare configurare path perchè contenga

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

Cenni ad Assembly Intel

Cenni ad Assembly Intel Cenni ad Assembly Intel Luca Abeni April 14, 2016 Architettura Intel Utilizzata sulla maggior parte dei laptop, desktop e server moderni Lunga storia Dagli anni 70 (Intel 8080-8 bit!)......fino ad oggi

Dettagli

LINGUAGGIO ASSEMBLER PER 8086/8088

LINGUAGGIO 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

Dettagli

Assembly Introduzione Rev. Digitale 1.0 del 01/09/2016

Assembly Introduzione Rev. Digitale 1.0 del 01/09/2016 Assembly 8086 - Introduzione Rev. Digitale 1.0 del 01/09/2016 E un linguaggio mnemonico in corrispondenza 1 : 1 con le istruzioni binarie riconosciute dalla CPU 8086. Cioè codifica con un nome mnemonico

Dettagli

CAPITOLO 4: BASI DI ASSEMBLY

CAPITOLO 4: BASI DI ASSEMBLY CAPITOLO 4: BASI DI ASSEMBLY x86 Un giorno a qualcuno venne in mente di creare un processore 8086, che si è poi evoluto ed è diventato il più veloce 80286, meglio conosciuto come 286, che a sua volta ha

Dettagli

Dal linguaggio macchina al linguaggio C

Dal 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

Dettagli

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011 Sistemi Operativi Introduzione all architettura IA-32 Lez. 16 1 Microprocessori Intel Nel 1979 Intel introduce la famiglia dei microprocessore 8086 8086, 8087, 8088, e 80186 Processori a 16-bit con registri

Dettagli

Architettura del set di istruzioni (ISA)

Architettura del set di istruzioni (ISA) Architettura del set di istruzioni (ISA) 1 Instruction Set Architecture Software Hardware Application (Netscape) Compiler Assembler Processor Memory Digital Design Circuit Design transistors Operating

Dettagli

Reverse engineering: disassembly

Reverse engineering: disassembly Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Reverse engineering: disassembly Roberto Paleari Emanuele Passerini

Dettagli

Intel x 86. Prof. B.Fadini a.a. 2006/2007

Intel x 86. Prof. B.Fadini a.a. 2006/2007 Intel x 86 Prof. B.Fadini (fadini@unina.it) a.a. 2006/2007 La CPU 8086 e la gestione segmentata della memoria Prof. B.Fadini (fadini@unina.it) a.a. 2006/2007 % #&' 3 Intel 8086/8088 Registri a 16-bit Bus

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

Esempi di Programmi Assembly. Luigi Palopoli, Luca Abeni

Esempi 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

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

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio 02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni

Dettagli

Il Linguaggio Assembly: Gestione della memoria e controllo

Il Linguaggio Assembly: Gestione della memoria e controllo Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione

Dettagli

Linguaggio Assembler Intel 80x86. Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin

Linguaggio Assembler Intel 80x86. Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin Linguaggio Assembler Intel 80x86 Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin 1 Scopi principali Studiare un ulteriore esempio di linguaggio assembler Saper svolgere semplici programmi

Dettagli

; ; Definizione costanti

; ; Definizione costanti 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 TITLE

Dettagli

Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.

Tutta 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

Dettagli

Microprocessori x86-16

Microprocessori x86-16 Microprocessori x86-16 Segmenti............................................ 2941 «Registri...................2943 Trasferimento di dati tra due segmenti differenti........... 2947 Riferimenti a indirizzi

Dettagli

Reverse engineering: disassembly

Reverse engineering: disassembly Università degli Studi di Milano Facoltà di Scienze e Tecnologie Dipartimento di Informatica Reverse engineering: disassembly Lanzi Andrea A.A. 2014 2015 Andrea Lanzi Reverse

Dettagli

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Controllo di flusso Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano

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

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Dettagli

Architettura del 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

Gestione dello Stack nel MIPS

Gestione dello Stack nel MIPS Gestione dello Stack nel MIPS Lo stack cresce da indirizzi di memoria alti verso indirizzi di memoria bassi ad es. sp-> 0x7fffffff 0x7ffffdfc riservata stack L inserimento di un dato nello stack (operazione

Dettagli

WINDOWZ: Remote Overflow Case Study and Protections. Matteo ryujin Memelli Antonio s4tan Parata

WINDOWZ: Remote Overflow Case Study and Protections. Matteo ryujin Memelli Antonio s4tan Parata WINDOWZ: Remote Overflow Case Study Matteo ryujin Memelli Antonio s4tan Parata Agenda Introduzione al SEH Exploiting SEH Overwrite Demo Windows Protections /SafeSEH + /GS internals Conclusioni Riferimenti

Dettagli

Laboratorio di Architettura degli Elaboratori

Laboratorio 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

Dettagli

Linguaggio macchina e linguaggio assembler

Linguaggio macchina e linguaggio assembler FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Linguaggio macchina e linguaggio assembler 2000 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Instruction Set Architecture

Instruction Set Architecture ( ISA ) Architettura del set di istruzioni Instruction Set Architecture Software Hardware ( Netscape ) Application Compiler Assembler Processor Memory Digital Design Circuit Design transistors Operating

Dettagli

SET/CLEAR LOAD DATA FROM STRING

SET/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).

Dettagli

Architettura e funzionamento del calcolatore

Architettura e funzionamento del calcolatore FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Università degli Studi di Udine Architettura e funzionamento del calcolatore Modello di calcolatore Si farà uso di un modello semplificato di elaboratore

Dettagli

Esercitazione n. 3. Dott. Salvatore Pontarelli

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

Dettagli

Sistemi Operativi 1. Mattia Monga. 6 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 6 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 6 marzo 2007 1 c 2007 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

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

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A *** indicano le affermazioni corrette. 1. Con riferimento alle architetture dei calcolatori ed alla valutazione

Dettagli

Interrupts and Exceptions

Interrupts and Exceptions s and Exceptions Da Understanding Linux Kernel Daniel P. Bovet, Marco Cesati Gli interrupts sono generati da timer e da periferiche sono asincroni Le exception sono sincrone Errori di programma Condizioni

Dettagli

L assembler 80x86. Corso di Calcolatori Elettronici II Prof. Giulio Iannello

L assembler 80x86. Corso di Calcolatori Elettronici II Prof. Giulio Iannello L assembler 80x86 Corso di Calcolatori Elettronici II Prof. Giulio Iannello 6OLGHDFXUDGL6LPRQ3LHWUR5RPDQR Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II I sottoprogrammi:

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

Questi trasparenti sono una versione estesa di quelli prodotti per il consorzio NETTUNO. 01/04/03 G. Bucci - Calcolatori Elettoronici 1

Questi trasparenti sono una versione estesa di quelli prodotti per il consorzio NETTUNO. 01/04/03 G. Bucci - Calcolatori Elettoronici 1 Questi trasparenti sono una versione estesa di quelli prodotti per il consorzio NETTUNO 01/04/03 G. Bucci - Calcolatori Elettoronici 1 Giugno 1978: 8086 40 piedini 29.000 transistori f = 5 Mhz CPI = 15

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Parte V. Il Livello delle Istruzioni Macchina

Parte V. Il Livello delle Istruzioni Macchina Parte V Il Livello delle Istruzioni Macchina V.1 Instruction Set Architecture Il livello ISA è l interfaccia tra HW e SW È il livello più basso a cui il processore è programmabile Criteri di scelta: Semplicità

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

7 May INTERRUPT ED ECCEZIONI I. Frosio

7 May INTERRUPT ED ECCEZIONI I. Frosio 1 INTERRUPT ED ECCEZIONI I. Frosio SOMMARIO Eccezioni ed interrupt Esempi Gestione SW delle eccezioni: i dettagli 2 CICLO DI ESECUZIONE DI UN ISTRUZIONE Fecth (prelievo istruzione dalla RAM) Decodifica

Dettagli

Sistemi Operativi. Bruschi Martignoni Monga. Send/Receive mini send Enqueue e dequeue mini receive mini notify. System call in MINIX

Sistemi Operativi. Bruschi Martignoni Monga. Send/Receive mini send Enqueue e dequeue mini receive mini notify. System call in MINIX 1 Mattia Lezione XIX: Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo

Dettagli