Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  PSP - Prefisso del Segmento di Programma

SCHEDA n° 05 [ 1  di 5] 

    

    Presentazione
     
bulletIl PSP è un'area di memoria di 256 bytes collocata all'inizio (Prefisso) del  Segmento destinato (dal loader del dos) ad un Programma eseguibile, nel momento del suo caricamento in memoria; questa definizione giustifica dunque il suo nome.
bulletQuando il Caricatore DOS è chiamato ad allocare in memoria un programma eseguibile riserva per esso la prima zona di memoria Ram libera, almeno un intero segmento (65526 locazioni consecutive), facendole puntare tutti i registri di segmento, CS, DS, ES e SS.
bulletNelle prime locazioni di questo segmento, a partire cioè dall'indirizzo di offset 0000H, predispone comunque il PSP, una vera miniera di informazioni destinate alla gestione del programma stesso, ma estremamente utili anche a noi.

      

bulletIn particolare le prime 92 locazioni, al di sotto dell'offset 005CH, contengono dati gestionali molto importanti, come l'indirizzo a cui verrà ceduto il controllo quando il programma ha termine, gli indirizzi delle procedure di servizio degli errori critici e della combinazione di tasti Ctrl-C, il puntatore alle stringhe AsciiZ dell'Environment (ambiente) che DOS utilizza per passare informazioni al programma.
bullet Per questa ragione è fortemente sconsigliato alterare il contenuto del PSP, almeno al fino a questo indirizzo.

      

bulletIl contenuto delle rimanenti 164 locazioni non è indispensabile: sono sostanzialmente dei buffer di servizio utilizzabili dal nostro programma, ufficialmente per il trasferimento di dati verso o da la memoria di massa, per altro con tecniche ormai obsolete.
bulletCiò significa che in determinate condizioni questa parte del prefisso può essere recuperata al programma, specialmente quando esso deve rimanere residente (TSR).

      

bulletSolitamente il programma (codice e dati) viene caricato subito dopo il PSP, a partire, quindi, dalla locazione 0100H, almeno per gli eseguibili intrasegmentali, cioè di tipo COM: in questo caso il contenuto dei registri di segmento non viene modificato, cioè puntano ancora tutti l'inizio del PSP; i 4 segmenti sono dunque fisicamente sovrapposti.
bulletIn un programma tipo EXE può capitare invece che la sua intestazione (header) suggerisca al loader di cambiare l'indirizzo di partenza del codice (comunque puntato da CS:IP) lasciando in IP ad un valore diverso da 0100H; in questo caso può succedere che CS e SS assumano valori diversi da quelli inizialmente predisposti, uguali a DS e ES.

      

bullet In ogni caso DS e ES continuano dunque a puntare all'inizio del PSP.

      

bulletNelle prossime pagine la scheda affronta i dettagli del Prefisso del Segmento di Programma; ecco l'elenco degli argomenti:
     
Presentazione (questa pagina)
PSP - La parte da NON toccare! - 01
PSP - La parte da NON toccare! - 02
PSP - La parte che si può sovrascrivere
PSP - Il passaggio dei parametri a livello Dos

    

Pagina Precedente Scheda n° 05 Pagina Successiva Prefisso di Segmento di Programma Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 05 -  1
1 2 3 4 5

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati