Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami
|
|
|
- Taddeo Perrone
- 8 anni fa
- Visualizzazioni
Transcript
1 Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria dell Automazione Sottoprogrammi: richiami Sottoprogramma o subroutine: è un segmento di codice che svolge un elaborazione su dati forniti in input e restituisce eventualmente risultati in output Realizza un astrazione procedurale, fornendo un servizio attraverso un interfaccia Consente un organizzazione modulare del codice 1
2 Sottoprogrammi: parametri Un sottoprogramma scambia con il programma chiamante dei dati sia in input che in output Le informazioni scambiate sono dette parametri Nel testo del sottoprogramma i parametri sono riferiti mediante dei nomi simbolici: parametri formali L attivazione (o invocazione) di un sottoprogramma richiede che ai parametri formali siano assegnate degli opportuni valori: parametri effettivi Sottoprogrammi: problematiche 1. Collegamento (o linkage) - Modo in cui un calcolatore rende possibili le operazioni di chiamata e di ritorno delle procedure 2. Passaggio dei parametri - Modo in cui il programma chiamante rende disponibili le informazioni di ingresso alla subroutine e la subroutine rende disponibili al programma chiamante le informazioni di uscita 2
3 Sottoprogrammi: procedure e funzioni In alcuni linguaggi di alto livello (Pascal) si distingue esplicitamente tra funzioni : sottoprogrammi al cui nome è associato un valore di ritorno assegnabile ad una variabile, es. a := max(b, c); procedure, che invece compiono solo una elaborazione sui parametri di scambio ma non hanno un valore di ritorno, es. stampa(vettore, n); In C tutti i sottoprogrammi sono detti funzioni, e le procedure hanno un dato di ritorno di tipo void Gestione dei sottoprogrammi in l/m Per consentire l organizzazione del codice assembly in sottoprogrammi, occorrono: meccanismi per il collegamento tra programma chiamante e sottoprogramma opportune convenzioni sulle modalità di scambio dei parametri, che definiscano: quali informazioni si scambiano il programma chiamante ed il sottoprogramma ( cosa ) attraverso quali meccanismi avviene lo scambio (memoria, registri, ) ( come ) 3
4 Sottoprogrammi: scambio dei parametri Nei linguaggi procedurali di alto livello cosa va passato, ovvero l elenco ed il tipo dei parametri di scambio viene definito nella dichiarazione della procedura Es: void prod (int a, int b, int *p) come avviene lo scambio è convenuto dal linguaggio: la convenzione è implementata dal compilatore Se si programma in assembler, è il programmatore che stabilisce ed implementa le convenzioni a meno che non si debba scrivere moduli assembler che interagiscono con moduli C o di altro linguaggio di alto livello: in tal caso occorre che il programmatore rispetti le convenzioni del compilatore Sottoprogrammi: esecuzione L esecuzione di un sottoprogramma avviene mediante i seguenti passi: 1. Scrittura dei parametri effettivi secondo la convenzione stabilita per lo scambio 2. Trasferimento del controllo al sottoprogramma ( chiamata ) 3. Esecuzione del sottoprogramma 4. Scrittura dei parametri di output 5. Trasferimento del controllo al programma principale ( ritorno dal sottoprogramma ) ed esecuzione dell istruzione successiva a quella di chiamata 5 Entry point Programma chiamante
5 Chiamata di un sottoprogramma La chiamata di un sottoprogramma interrompe l esecuzione sequenziale delle istruzioni del programma chiamante e pertanto si presenta come un caso particolare di salto L indirizzo della prima istruzione della subroutine (entry point) deve essere caricato nel Program Counter A differenza di un normale salto, occorre prevedere un meccanismo per il ritorno al chiamante Esempi di istruzioni per la chiamata di subroutine: Motorola 68000: jsr label bsr label Intel 8086: call label PowerPC e MIPS: jal label Collegamento Il problema di consentire il ritorno dal sottoprogramma al programma chiamante, o meglio all istruzione del programma chiamante successiva alla chiamata, è detto problema di collegamento del sottoprogramma (subroutine linkage) Tre soluzioni sono possibili: L indirizzo di ritorno è salvato in un registro di macchina L indirizzo di ritorno è salvato in una locazione di memoria particolare (ad esempio, nelle locazioni immediatamente precedenti l entry point della subroutine) L indirizzo di ritorno è salvato sullo stack 5
6 Collegamento: link register In alcune architetture (PowerPC, MIPS) un istruzione di jump&link carica l indirizzo di ritorno in un registro del processore (Link Register) e successivamente effettua il salto: jal label $ra := [PC]; PC := label Un altra istruzione effettua l operazione reciproca, il caricamento nel PC del valore salvato nel registro di link: jr $ra PC := [$ra] Il nesting delle subroutine e la ricorsione richiedono il salvataggio del link register su uno stack Collegamento: salvataggio in area di memoria Si può stabilire una convenzione, per la quale l indirizzo di ritorno è salvato nelle locazioni precedenti l entry point della subroutine Es.: MAIN MOVE.L #RET1,SUBR JMP SUBR+4 RET1... SUBR DS.L 1 codice subroutine MOVEA.L SUBR,A0 JMP (A0) Inconvenienti: non può essere usata se il codice della subroutine è in ROM; non consente il nesting, la ricorsione, 6
7 Collegamento mediante stack In alcuni processori (es. il Motorola e nella famiglia Intel x86) l istruzione di salto a subroutine automaticamente salva l indirizzo di ritorno sulla cima dello stack di sistema jsr subr pushm(sp, PC); PC:= subr Reciprocamente, un istruzione di ritorno da subroutine consente il ripristino dell indirizzo di ritorno dalla cima dello stack rts popm(sp, PC) Convenzioni per il passaggio dei parametri I parametri effettivi su cui un sottoprogramma deve operare possono essere scambiati mediante: Registri del processore Un area di memoria associata al chiamante Un area di memoria associata al sottoprogramma L uso di uno stack 7
8 Passaggio dei parametri mediante registri E la tecnica più veloce: non richiede accessi in memoria Occorre che chiamante e sottoprogramma si accordino sull uso dei registri Il numero di registri generali del processore rappresenta un limite Passaggio dei parametri mediante un area di memoria Sono possibili due varianti: 1. Il codice della subroutine definisce un area di memoria usata per lo scambio dei parametri 2. Il programma chiamante alloca un area di memoria per lo scambio dei parametri e ne passa l indirizzo iniziale al sottoprogramma, il quale accede ai parametri effettivi mediante un opportuno spiazzamento rispetto all indirizzo base (ad es., usando un modo di indirizzamento indiretto con displacement) 8
9 Esempio A EQU 0 B EQU 4 C EQU 6 ORG $6000 AREA DS.L 1 DS.W 1 DS.W 1 ORG $8000 MAIN MOVEA.L #AREA,A0 scrive i parametri effettivi in area JSR SUBR SUBR MOVE.L A(A0),D0 MOVE.W B(A0),D1 MOVE.W C(A0),D2 Passaggio parametri mediante stack La tecnica di scambio dei parametri che consente in modo naturale il nesting e la ricorsione utilizza un area di memoria allocata dinamicamente (record di attivazione) per la memorizzazione dei parametri effettivi e delle variabili locali del sottoprogramma Tipicamente il record di attivazione è allocato dinamicamente sulla cima dello stack, in quanto la tecnica LIFO di accesso ben si adatta al ciclo di vita delle procedure innestate o ricorsive (l ultima invocazione è la prima a ritornare) 9
10 Uso dello stack per la memorizzazione del record di attivazione Per fissare un riferimento fisso al record di attivazione, da usare nel sottoprogramma per accedere ai parametri di scambio, si crea un Frame Pointer (FP), ovvero si assegna ad un registro del processore l indirizzo della cima dello stack all entrata della subroutine Successivamente, la subroutine può fare uso dello stack per variabili locali e quindi lo Stack Pointer può ulteriormente spostarsi, mentre gli spiazzamenti dei campi del record di attivazione rispetto al Frame Pointer rimangono costanti Istruzione LINK del Per facilitare la gestione del record di attivazione sullo stack, il processore Motorola dispone di un istruzione: LINK A,#im pushm(sp,a); A := [SP]; SP := [SP] + im; salva il contenuto del registro A sullo stack, carica in A il valore aggiornato dello Stack Pointer, ed infine incrementa SP dell offset im Sommando il valore negativo im al contenuto di SP, l istruzione LINK riserva un area di memoria di im byte sulla cima dello stack. Quest area è utilizzata per l allocazione delle variabili locali del sottoprogramma. Dualmente: ULINK A effettua SP := [A]; popm(sp,a); 10
11 LINK e ULINK Stato dello stack prima e dopo LINK L istruzione ULINK A ripristina in A il valore puntato da A (old_a) e SP variabili locali variabili locali A1 old_a1 SP indir. di ritorno indir. di ritorno Uso dello stack per il passaggio dei parametri SP variabili locali variabili locali A1 old_a1 SP indir. di ritorno indir. di ritorno SP par. input #2 par. input #2 par. input #2 par. input #1 par. input #1 par. input #1 par. output #1 par. output #1 par. output #1 11
12 Esempio * Calcola Z = X^Y mediante sottoprogramma POWR *********************************************************** * Programma principale ORG $1000 MAIN ADDA.L #-2,SP riserva 2 byte per Z MOVE Y,-(SP) push esponente Y (word) MOVE X,-(SP) push base X (word) JSR POWR chiama subroutine POWR ADDQ #4,SP rimuovi X e Y dallo stack MOVE (SP)+,Z copia parametro di output JMP $8008 ritorna al sist.operativo * Allocazione variabili X, Y e Z X DC.W 3 Y DC.W 4 Z DS.W 1 Esempio (cont.) Subroutine POWR: calcola A^B OLD_FP EQU 0 RET_ADDR EQU 4 A EQU 8 spiazzamento base B EQU 10 spiazzamento esponente C EQU 12 spiazzamento risultato POWR LINK A6,#0 usa A6 come frame pointer MOVEM.L D0-D2,-(SP) salva registri su stack MOVE A(A6),D0 copia A in D0 MOVE B(A6),D1 copia B in D1 MOVE.L #1,D2 usa D2 come accumulatore LOOP SUBQ #1,D1 decrementa B BMI.S EXIT if D1-1<0 then EXIT MULS D0,D2 moltiplica D2 per A BRA LOOP e ripeti se necessario EXIT MOVE D2,C(A6) C:=(D2) MOVEM.L (SP)+,D0-D2 ripristina registri UNLK A6 RTS END MAIN 12
Subroutine in linguaggio macchina: collegamento e passaggio dei parametri
Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
Passaggio di Parametri per Valore o Indirizzo
Passaggio di Parametri per Valore o Indirizzo Come in C, l assembler permette di passare un dato per valore (copia) o per indirizzo, nel secondo caso rendendo modificabile il dato stesso da dentro una
Modi di indirizzamento del processore MC68000 (parte seconda)
Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte seconda) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea
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:
Sottoprogrammi in linguaggio assembly del Motorola 68000
Sottoprogrammi in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza [email protected] Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Sezioni 4.9, 5.6
#define N = 5. / funzione funz / int funz (int a, int b) { return (a + r) b; } / fine funzione / programma in linguaggio C
esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma (main e funzione funz) riportato
Architettura di un calcolatore: Introduzione parte 2
Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
Traduzione da C a Catena di compilazione
Traduzione da C a 68000 Vittorio Zaccaria Dicembre 2009 Catena di compilazione utilizzo di linguaggi intermedi di(ir) Analisi sintattica e trattamento degli errori Generazione del codice macchina linguaggio
ARM: stack e subroutine
ARM: stack e subroutine 05.d Le istruzioni di accesso allo stack L istruzione di chiamata a subroutine Gestione degli stack frame Istruzione di store multiplo (STM Le istruzioni LDR e STR operano su parole
Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.
< < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte
Calcolatori Elettronici
Calcolatori Elettronici Il linguaggio assemblativo MIPS (4) Le function (2) Gestione dei sottoprogrammi $a0 - $a3 - $v1 $ra : 4 registri argomento per il passaggio dei parametri : due registri per la restituzione
Esercizi. Assembly. Alessandro A. Nacci [email protected] ACSO 2014/2014
Esercizi Assembly Alessandro A. Nacci [email protected] ACSO 2014/2014 1 RIPASSO Architettura dei registri del 68K Di (0 i 7): registri di dato a 8, 16, 32 bit Ai (0 i 7): resgistri di a 16, 32
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15 Prof. Rosario Cerbone [email protected] http://digilander.libero.it/rosario.cerbone a.a. 2005-2006 L'INDIRIZZAMENTO NEL PROCESSORE MC 68000
LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER
LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Istruzioni di selezione Linguaggio ad alto livello Assembler
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
Richiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
Richiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
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
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
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
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
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
Processore Danilo Dessì. Architettura degli Elaboratori.
Processore 8088 Architettura degli Elaboratori Danilo Dessì [email protected] Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine
Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso
Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Salto Non Condizionato Salto Condizionato JMP jump BRA branch non condizionato BEQ branch if Equal BNE branch if Not Equal BCS branch if
Il linguaggio Assembly
Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly
Introduzione alla famiglia Motorola 68000
Introduzione alla famiglia Motorola 68000 Maurizio Rebaudengo Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Storia Introduzione Registri interni Modi di indirizzamento
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore
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
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
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
Il processore Motorola (MC68000)
Il processore Motorola 68000 (MC68000) Il processore Motorola 68000 è stato un processore innovativo, che ha visto la luce all inizio degli anni 80, ed il cui successo ha posto le basi per lo sviluppo
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
FONDAMENTI DI INFORMATICA Lezione n. 11
FONDAMENTI DI INFORMATICA Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di
Organizzazione di un SO monolitico
Organizzazione di un SO monolitico Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del Gestore delle processore / Gestore della periferiche/ Scheduler(s) memoria dispositivi
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
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:
Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo
ISA (Instruction Set Architecture) della CPU MIPS
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
Il sistema delle interruzioni nel processore MC68000 (cenni)
Corso di Calcolatori Elettronici I A.A. 2011-2012 Il sistema delle interruzioni nel processore MC68000 (cenni) Lezione 33 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria
Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA
Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi
Il processore Motorola (MC68000)
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 9 Prof. Rosario Cerbone [email protected] http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 Il processore Motorola 68000 (MC68000)
Modi di indirizzamento
Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando
Introduzione al linguaggio assembly
Corso di Calcolatori Elettronici I A.A. 2011-2012 Introduzione al linguaggio assembly Lezione 20 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Il linguaggio Assembly È funzionalmente
Istruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
Introduzione al linguaggio assembly
Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
Gestione della Memoria
Gestione della Memoria Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 27 apr, 2016 Sommario 1 Tecniche di gestione Progetto della gestione
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):
Calcolatori Elettronici Parte VIII: linguaggi assemblativi
Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività
Architettura dei Calcolatori elettronici
Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore
Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO
Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO JP pq E un istruzione di salto assoluto incondizionato. Per salto assoluto si intende il fatto che grazie a quest istruzione, il contenuto
Fondamenti di programmazione in linguaggio assembly del Motorola 68000
Fondamenti di programmazione in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza [email protected] Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Libro
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
Modi di indirizzamento del processore MC68000 (parte prima)
Corso di Calcolatori Elettronici I A.A. 2011-2012 Modi di indirizzamento del processore MC68000 (parte prima) Lezione 21 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria
Interazione con il DOS e il BIOS
Interazione con il DOS e il BIOS ARGOMENTI PRESENTATI IN QUESTI LUCIDI Routine di BIOS e DOS Due modalità diverse di restituire il controllo al DOS L interazione con le routine del DOS: l interrupt 21H
ASSEMBLER 68K parte 1
ASSEMBLER 68K parte 1 CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Supporti didattici Fadini Savy, Fond. Inf. 2 parte. III, cap.
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
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
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
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
L'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
Gestione della memoria
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza [email protected] http://www.dis.uniroma1.it/~salza/fondamenti.htm
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
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
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
ORG $8800 N DC 9,11,1,4,5,7,2
ESEMPI DI ASSEMBLY M68000 Esercizio 1 Scrivere un programma non segmentato in linguaggio macchina (simbolico), con sintassi nativa M6800, che rispetti la seguente specifica. Dati 7 numeri di tipo Word,
Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
La Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
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
