Passaggio di Parametri per Valore o Indirizzo
|
|
|
- Giuliana Blasi
- 8 anni fa
- Visualizzazioni
Transcript
1 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 subroutine. Ovviamente nei due casi dovrà essere diverso il modo di accedere al dato. Passaggio per valore (mediante registro), risultato restituito mediante un registro ORG $4000 Dato: DC.W $10 SommaV ADD #14,D1 RTS Start: MOVE Dato,D1 JSR SommaV END Start Passaggio per indirizzo (mediante registro), risultato scritto in memoria ORG $4000 Dato: DC.W $10 SommaI: ADD #14,(A1) RTS Start: LEA Dato,A1 JSR SommaI END Start m36 m47
2 Passaggio di Parametri mediante Aree Dati E possibile organizzare il programma affinchè il passaggio dei parametri dal programma chiamante ad un sottoprogramma avvenga utilizzando un area di memoria (diversa dallo stack) che il programma chiamante riempie con i dati (e in cui poi legge i risultati), e da cui il sottoprogramma chiamato legge i dati passati dal chiamante. La definizione dell area dati utilizzata può essere fatta in due modi: o l area è fissata a priori e quindi il chiamante sa già dove andare a reperire i dati, oppure l area viene di volta in volta allocata dal chiamante, il quale poi passa al chiamato l indirizzo dell area mediante un registro. In ogni caso, l area dati per il passaggio dei parametri dovrà sempre prevedere una zona per i parameri di ingresso, ed una zona per i parametri di uscita. OSS. Utilizzare una stessa area di memoria come area per il passaggio di parametri ad una subroutine, impedisce di effettuare chiamate ricorsive, perchè sovrascriverebbero i parametri delle chiamate precedenti. m36 m48
3 Passaggio di Parametri mediante Stack di Sistema Nella chiamata a sottoprogramma che utilizza lo stack per il passaggio dei parametri e per la collocazione delle variabili locali, il programmatore deve seguire le fasi qui indicate: Immediatamente prima della chiamata a sottoprogramma JSR, il chiamante aggiunge in cima (puntata da SP) allo stack di sistema i parametri da passare al sottoprogramma, e lo spazio per i risultati da restituire. La chiamata a sottoprogramma JSR, aggiunge in cima allo stack l ritorno dal sottoprogramma (il corrente PC). Il sottoprogramma colloca in cima allo stack il valore dei rigestri da salvare. Il sottoprogramma colloca in cima allo stack le proprie variabili locali. Il sottoprogramma esegue il proprio codice e salva il risultato nello stack, nello spazio allocato dal chiamante. Il sottoprogramma libera lo stack dalle variabili locali. Il sottoprogramma invoca la RTS, che fa terminare la funzione, carica dallo stack l ritorno e restituisce il controllo al chiamante. Il chiamante utilizza il risultato di ritorno e libera lo stack dai parametri passati al chiamato. In questo modo è possibile effettuare chiamate ricorsive. SP SP variabili locali event. registri salvati ritorno (PC) 2 word parametri di uscita parametri in ingresso indirizzi m36 m49
4 Esempio di Funzione Ricorsiva: Fattoriale implementazione C int FATRIC(int N) { int R; if (N==0) R = 1; else R = N * FATRIC( N-1 ); return ( R ); } int N = 5; int RESULT; void main(void) { RESULT = FATRIC ( N ); } SP main indirizzi Stack N-1 R REG. SALV. Ritorno [N] Ris [N] N m36 m50
5 Esempio di Funzione Ricorsiva: Fattoriale N: DC.W $4 RESULT: DS $2 ORG $1000 FATRIC: MOVEM D1,-(SP) salvo D1 SUBQ.L #2,SP Spazio per R sullo stack MOVE 10(SP),D1 N in D1 BEQ FINERIC Se D1 e' zero finisco RIC: MOVE D1,(SP) N che e' in D1 va in R SUBQ #1,D1 D1 vale N-1 CALL: MOVEM D1,-(SP) N-1 sullo stack SUBQ.L #2,SP spazio per NewRis JSR FATRIC chiamata ricorsiva RITR: MOVE (SP),D1 NewRis in D1 ADDQ.L #4,SP elimino NewRis e N-1 MULU (SP),D1 D1 = R*NewRis = N*NewRis MOVE D1,(SP) R = R*NewRis cioe' R=N*NewRis BRA RITORNO FINERIC: MOVE #1,(SP) 1 in R RITORNO: MOVE (SP),8(SP) R in Ris ADDQ.L #2,SP elimino R MOVEM (SP)+,D1 ripristino D1 RTS ritorno al chiamante START: NOP MOVE N,-(SP) Spazio per N sullo stack SUBQ.L #2,SP Spazio per Ris sullo stack JSR FATRIC RIT: MOVEM (SP)+,D1 Ris in D1, ed elimino da stack ADDQ.L #2,SP elimino N dallo stack MOVE D1,RESULT FINISH: STOP #$2700 END START m36 m51
6 Esempio di Funzione Ricorsiva SP indirizzi FACTRIC: SP prima di CALL FACTRIC: SP prima di CALL Environment di FATRIC(N) main SP $6000 $6002 $6004 $6008 $600A $600C $600E $6010 $6014 $6016 $6018 R D1 Ritorno [N-1] NewRis [N-1] N-1 R D1 Ritorno [N] Ris [N] N m36 m52
7 Stack dopo l unica esecuzione dell istruzione all indirizzo FINERIC (per N=2) (solo i valori interessanti) 1 R D1 RITR Ritorno [N-1] NewRis [N-1] 0 N-1 = 0 $6000 $ R=1 D1 $6004 RITR Ritorno [N-1] $6008 NewRis [N-1] SP $600A $600C 1 2 N-1 = 1 R=2 $600E D1 Environment di FATRIC(N)0 $6010 RIT Ritorno [N] $6014 Ris [N] main SP $6016 $ N=2 m36 m53
8 L istruzione Decrement and Branch Always Calcola il prodotto scalare di due vettori N EQU $00A $ORG $3000 A DC.W 1,2,3,4,0,9,8,7,6,5 B DC.W -1,2,-3,4,-5,6,-7,8,-9,10 C DS.L 1 $ORG $4000 START: MOVEA.L #A,A0 MOVEA.L #B,A1 MOVE #N,D0 SUBQ #1,D0 CLR D2 LOOP: MOVE (A0)+,D1 MULS (A1)+,D1 ADD D1,D2 DBRA D0,LOOP decrementa D0, salta se >=0 MOVE D2,C END START m36 m54
9 Esempio, ricerca di un carattere in una stringa cerca l indirizzo del token e lo mette in ADDR se lo trova TOKEN EQU : $ORG $3000 ADDR DS.L 1 STRING DC.B QUI QUO : QUA TAPPO DC.B $0 $ORG $4000 START: MOVEA.L #STRING,A0 MOVE.B #TOKEN,D0 LOOP CMP.B #0,(A0) BEQ END CMP.B. (A0)+,D0 BNE LOOP SUBQ.L #1,A0 MOVEA.L #ADDR,A1 MOVE.L A0,(A1) END START m36 m55
10 Esempio, Fibonacci ricorsivo * esercizo di assembler per sistemi 1 * calcolo del numero di fibonacci * mediante procedura ricorsiva, in cui il * parametro n viene passato nel registro D0 * lo stack viene usato solo per appoggio, * per memorizzare il risultato di F(n-1) * mentre viene calcolato F(n-2) * * F(0) := 1 * F(1) := 1 * F(n) := F(n-1) + F(n-2) per n>=2 * ORG $1000 N: DC.L $4 RESULT: DC.L $0 FIBRIC: NOP CMPI.L #1,D0 BGT RICORS FINE01: MOVE.L #1,D0 RTS RICORS: NOP MOVEM.L D0,-(SP) salvo N sullo stack SUBQ.L #1,D0 JSR FIBRIC MOVEM.L D0,-(SP) salvo F(N-1) sullo stack MOVE.L 4(SP),D0 copio N in D1 SUBQ.L #2,D0 JSR FIBRIC F(N-2) -> D1 ADD.L (SP),D0 D1 = F(N-1) + F(N-2) ADDQ.L #8,SP elimino dallo stack N e F(N-1) RTS ritorno al chiamante * Main Program START: MOVE.L N,D0 JSR FIBRIC MOVE.L D0,RESULT FINISH: STOP #$2700 END START m36 m56
11 Esempio, Fibonacci iterativo (1) * esercizo di assembler per sistemi 1, calcolo del numero di fibonacci, procedura iterativa * F(0) := 1 F(1) := 1 F(n) := F(n-1) + F(n-2) per n>=2 ORG $1000 N: DC.W $4 RESULT: DC.W $0 FIBO: NOP TEST0: CMPI.W #0,4(SP) BEQ FINE01 TEST1: CMPI.W #1,4(SP) BNE OTHER FINE01: MOVE.W #1,4(SP) RTS OTHER: MOVEM.L D0,-(SP) MOVEM.L D1,-(SP) MOVEM.L A0,-(SP) CLR.L D0 CLR.L D1 MOVE.W 16(SP),D0 N in D0 MOVE.W D0,D1 N in D1 ADDQ.W #1,D1 MULU #2,D1 SUB.L D1,SP USO 2*N byte nello stack MOVE.W #1,(SP) MOVE.W #1,2(SP) SUBQ.W #2,D0 N := N-2 MOVE.L SP,A0 LOOP: MOVE.W (A0),D1 ADD.W 2(A0),D1 MOVE.W D1,4(A0) CMPI.W #0,D0 BEQ ENDLOOP ADDQ.L #2,A0 SUBQ.W #1,D0 BRA LOOP m36 m57
12 Esempio, Fibonacci iterativo (2) ENDLOOP: ADDQ.L #4,A0 CLR.L D1 MOVE.W 18(A0),D1 salvo N in D1 ADDQ.W #1,D1 MULU #2,D1 MOVE.W (A0),18(A0) copio F(N) CTRL: ADD.L D1,SP MOVEM.L (SP)+,A0 MOVEM.L (SP)+,D1 MOVEM.L (SP)+,D0 RTS ritorno al chiamante * Main Program START: NOP MOVE.W N,-(SP) JSR FIBO MOVE.W (SP)+,RESULT FINISH: STOP #$2700 END START m36 m57
13 Set di Istruzioni del MC68000 m36 m58
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
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
Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami
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
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
Processore M68000: ulteriori istruzioni
Corso di Calcolatori Elettronici I Processore M68000: ulteriori istruzioni ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Shift LSL, LSR shift logico a sinistra/destra Esempio: LSL.W #2,D2
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
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
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
#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
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,
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
Tecniche di traduzione da C ad assembly 68000. Note generali
Tecniche di traduzione da C ad assembly 68000 Note generali Schema di compilazione da C ad assembly 68K Ispirato a GCC Fa uso di: banco di registri classi d istruzioni modi d indirizzamento e organizzazione
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
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
Introduzione alla programmazione assembly
Corso di Calcolatori Elettronici I A.A. 2010-2011 Introduzione alla programmazione assembly Lezione 21 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Organizzazione Motorola 68000 Holds
S i m u l a z i o n e d i u n D M A c o n t r o l l e r
S i m u l a z i o n e d i u n D M A c o n t r o l l e r N e l l e o p e r a z i o n i d i I / O, q u a n d o l a v e l o c i t à d e l t r a - s f e r i m e n t o d e i d a t i a s s u m e u n v a l o
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
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
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
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:
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
Ad esempio per la matrice e l intervallo [11,13], la routine ritorna 1 in quanto le
Sistemi di Elaborazione/Architettura degli Elaboratori 6 Giugno 2 ASSEMBLER Una subroutine Assembler (Motorola 68) accetta in ingresso una matrice M di dimensione nm di numeri interi con segno formato
Istruzioni MIPS per floating point
Istruzioni MIPS per floating point Architetture dei Calcolatori (lettere A-I) Coprocessore per floating point L architettura MIPS ha un coprocessore (indicato con il numero 1) che opera sui numeri in virgola
La ricorsione. Ver Claudio Fornaro - Corso di programmazione in C
La ricorsione Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati
Capitolo 2 Istruzioni macchina
Capitolo 2 Istruzioni macchina 2.1. No; ogni sequenza binaria si può interpretare come un numero o come un istruzione. 2.2. Il contenuto dei byte in esadecimale, a partire dalla locazione 1000, sarà 43,
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
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
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.
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 A.A. 2011-2012 Introduzione al linguaggio assembly Lezione 20 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Il linguaggio Assembly È funzionalmente
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)
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
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
Debug di un programma
Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal
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
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
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):
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
Fondamenti di Informatica T. Linguaggio C: Stack e Ricorsione
Linguaggio C: Stack e Ricorsione FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione: si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri
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
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
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg [email protected] Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
AMBIENTE DI SIMULAZIONE ASIM
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 10 Prof. Rosario Cerbone [email protected] http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 AMBIENTE DI SIMULAZIONE ASIM Digitazione
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da
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
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
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
Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio
AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio
Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario La ricorsione Metodi ricorsivi Esercizi proposti 16/01/2013 2 La ricorsione In Java ogni metodo può chiamare anche se stesso,
Introduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
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
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
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
C: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
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
Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
FUNZIONI RICORSIVE PROGRAMMAZIONE RICORSIVA: Esempi di problemi ricorsivi:
FUNZIONI RICORSIVE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento (chiamata) a se stessa. Esempio: Esempi di problemi ricorsivi: 1) Somma dei primi
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
Spazio di indirizzamento virtuale
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - [email protected] // The function name says it all int stack_overflow (){
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
Programmazione Assembly
Programmazione Assembly Alessandro Pellegrini Calcolatori Elettronici Sapienza, Università di Roma A.A. 2012/2013 Scheletro di un programma assembly 1 ORG [INDIRIZZO CARICAMENTO] 2 3 ; Dichiarazione costanti
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
Calcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly
L ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/20
