MODELLI DI MEMORIA e CALL



Documenti analoghi
Programmazione Assembly per 8088: Esercizi svolti

Calcolatori Elettronici Parte X: l'assemblatore as88

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET

MIPS Instruction Set 2

Processore Danilo Dessì. Architettura degli Elaboratori.

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

Classe 3a INF - Esecuzione di un interrupt: ricostruzione delle operazioni al calcolatore con Turbo Debugger

Il microprocessore 8086

Hardware di un Computer

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Esercizi. Assembly. Alessandro A. Nacci ACSO 2014/2014

Dispensa di Informatica I.1

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

iafelice at cs(dot)unibo(dot)it

Protezione. Protezione. Protezione. Obiettivi della protezione

Allocazione dinamica della memoria - riepilogo

Architettura degli elaboratori (A)

Struttura del calcolatore

PORTALE CLIENTI Manuale utente

CAP. 4: Aspetti generali del Sistema Operativo Linux. l

Il Sistema Operativo (1)

Istruzioni di modifica della sequenza di elaborazione

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Oggetti Lezione 3. aspetti generali e definizione di classi I

INSERIRE RISORSE. Un etichetta è un semplice testo che descrive una particolare risorsa o attività all interno di un Argomento.

Standard Nazionale di Comunicazione Mercato Gas

Interazione con il DOS e il BIOS

Standard Nazionale di Comunicazione Mercato Gas

L Assembler 80x86 Concetti Generali. M. Rebaudengo M. Sonza Reorda P. Bernardi

CALCOLATORI ELETTRONICI II

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

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

Registratori di Cassa

DOTAZIONE ORGANICA IS357_03_01. OGGETTO: aggiornamento della procedura Dotazione Organica dalla versione o superiore alla versione

ToolChain: Come Generare Applicazioni in Linguaggio Macchina

Send/receive sincrona, assumendo che la condivisione avvenga mediante riferimenti logici coincidenti, invece che con capability.

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

FORMAZIONE PROFESSIONALE

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Guida di Pro PC Secure

NAS 259 Proteggere i dati con la sincronizzazione remota (Rsync)

Sistema di protezione (2) Protezione (1)

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

Sistema di protezione (1)

LA CPU INTEL Vantaggi dei programmi Assembly

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino

Concetto di Funzione e Procedura METODI in Java

CALCOLATORI ELETTRONICI II

Sequenza di finestre per lavorare con i punti di ripristino. e.g.

Il simulatore SPIM SPIM

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Sistemi e Reti a.s. 2013/2014

CAPITOLO 7 - SCAMBIO DI MESSAGGI

AGGIORNAMENTO PROCEDURA TY-TERMINALINO

Manuale d uso. Versione Data: 07/06/2007. Credits Partners

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO

Sottoprogrammi: astrazione procedurale

Il mio Garmin. Questo sconosciuto!

Java: Compilatore e Interprete

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Digital Persona Client/Server

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Ripristino di AdmiCash su un nuovo PC o sistema operativo

Guida al backup e aggiornamento del programma MIDAP

Aggiornamento programma da INTERNET

Acronis Backup & Recovery 10 Server for Windows, Workstation. Guida introduttiva

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

; ; Definizione costanti

Modulo 1.3 Reti e servizi

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Funzioni in C. Violetta Lonati

CdL in Medicina Veterinaria - STPA AA

Il presente supporto consente la gestione delle gare Giovanili. Premere il pulsante Immissione Dati Gara

Il Software. Il software del PC. Il BIOS

Il programma CONFELMOD CAD creazione e modifica

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

Internet gratuita in Biblioteca e nei dintorni

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI

Standard Nazionale di Comunicazione Mercato Gas

CREAZIONE DI UNA COPIA DI SICUREZZA E SPOSTAMENTO DEL DATABASE DI CONSOLLE AVVOCATO PER UTILIZZO SU SERVER

ESERCIZIO: LETTURA DI UNA STRINGA (una serie di caratteri fino al carattere di INVIO) con funzioni DOS

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Come posso visualizzare la mia posta senza utilizzare programmi per la posta elettronica (es. Outlook Express, Outlook 2003, etc.)?

FORMAZIONE PROFESSIONALE

Comunicazione tra Processi

Comunicazione tra Processi

È consuetudine classificare le istruzioni macchina in base al numero degli operandi a cui

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Punto Print Il programma per stampare. Documentazione Tecnica

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Introduzione all acquisizione Dati

PROCEDURA OPERATIVA FASE PREPARATORIA SCRUTINI SISSIWeb

Esempio di moltiplicazione come somma e spostamento

Lezione E12. Sistemi operativi open-source, embedded e real-time

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Transcript:

Corso di Archite?ura degli Elaboratori Modulo di Assembly MODELLI DI MEMORIA e CALL Bruno Iafelice University of Bologna iafelice at cs(dot)unibo(dot)it 1

ArgomenC Modelli di memoria per 8088 Chiamata di subroucne e Protocollo chiamante/ chiamato Chiamata di subroucne di sistema 2

MODELLI DI MEMORIA Gli assemblatori per l 8088 supportano in generale 6 modelli di memoria con complessità crescente:!ny: 1 segmento per codice, dac, stack e heap small: 1 segmento per codice; 1 segmento per dac, stack e heap compact: 1 segmento per codice; 1 seg. DaC; 1 seg. Stack; più segmenc per heap medium large Huge ] più segmenc per codice, Più segmenc per dac Il programmatore sceglie il modello in base alle dimensioni dei DaC e del Codice. L assemblatore allegato al testo di Tanenbaum si avvale del SOLO modello SMALL: 1 segmento codice, 1 dac e stack (SS=DS=ES). 3

Cortesia Antonio Corradi 4

Cortesia Antonio Corradi 5

SOTTOPROCEDURE: Trasferimento del controllo CALL procedurachiamata Trasferisce il controllo dal programma chiamante alla procedura (subroucne) chiamata RET ResCtuisce il controllo dalla procedura chiamata (subroucne) al programma chiamante 7

CALL 8088, chiamate a sub roucne: Chiamate ravvicinate (NEAR) Chiamate a distanza (FAR) Il nostro Assemblatore usa solo le chiamate Ravvicinate DesCnazione: ecche?a o indirizzo effe_vo Cosa fa: Salva il punto corrente di esecuzione: valore corrente di IP per chiamate vicine valore corrente di CS e poi di IP per chiamate lontane (cioè PC) Passa il controllo alla procedura chiamata 8

RET Cosa fa: Recupera il punto di esecuzione del chiamante: valore corrente di IP per chiamate vicine valore corrente di IP e poi di CS per chiamate lontane (cioè PC)...LIFO!!! Ritorna il controllo alla procedura chiamante 9

10

Passaggio delle variabili: a?raverso lo Stack impilamento in ordine inverso: LIFO!!! Annidamento: chiamata di subroucne una dentro l altra limitato dalle dimensioni dello Stack 11

Protocollo di programmazione Per il programma chiamante Salvare sullo stack le variabili: LIFO!!! Invocazione di CALL (passaggio del controllo alla subroucne) Per la subrou!ne Salvare sullo stack l indirizzo corrente del BP (punto corrente dello stack) Copiare in BP il valore corrente di SP Recupero variabili dallo stack: LIFO!!! Esecuzione Salvataggio risultac sullo stack: LIFO!!! Recupero BP dallo stack (ripriscno) Invocazione RET e ritorno del controllo al chiamante 12

MEMORIA BASSA MEMORIA ALTA Call FAR indirizzo di ritorno BP+2 variabile2 BP+6 (BP+4 per Call NEAR) variabile1 BP+8 (BP+6 per Call NEAR) 13

Salvataggio dei registri Se la subroucne usa dei registri è bene che salvi i vecchi valori sullo stack e li ripriscni all uscita Di solito si salvano i registri AX BX CX DX ma non SI DI...vedi esempio di prima 14

Recupero degli operandi (e scri?ura dei risultac) BP funge da punto di ancoraggio o riferimento sullo stack per la so?oprocedura Call NEAR... PUSH Argomento2 PUSH Argomento1 CALL subroutine...

SOTTOPROCEDURE DI SISTEMA: Livello macchina del sistema operacvo Il livello macchina del sistema operacvo (OSM) concene tu?e le istruzioni disponibili ai programmatori, pressoché tu?e le istruzioni del livello ISA, e le nuove istruzioni aggiunte dal sistema operacvo (chiamate di sistema, system call). Una system call invoca un predefinito servizio del sistema operacvo (es. le?ura/scri?ura da/in un file). Il livello OSM è interpretato, quindi dietro la chiamata di sistema c è un u+lity che esegue il servizio a livello ISA. Le chiamate fa?e dal programma a livello ISA non passano per il sistema operacvo.

Chiamate a subroucne di sistema (System call) Le chiamate di sistema consentono di uclizzare le procedure fornite dal sistema operacvo. Per es. per Accesso ai file Le roucne di sistema possono essere a_vate con la sequenza di chiamata standard a so?o- procedura usando l istruzione INT al posto della CALL Passaggio argomento a?raverso lo Stack Risultato in: Fino a 16bit AX Long (32bit) DX:AX INT non modifica il valore degli altri registri (a parte AX e DX) Salvare i vecchi valori di AX e DX sullo Stack prima dell invocazione di INT e recuperarli quando ritorna il controllo Il chiamante deve rimuovere gli argomenc dallo Stack dopo il ritorno del controllo 17

INT (IRET) 18

19

System call DOS Esempi

System call as88 L assemblatore allegato al testo di Tanenbaum me?e a disposizione una serie di so?oprocedure per mascherare le system call e slegarle dal sistema operacvo so?ostante Si invocano con l istruzione SYS