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 [ 4  di 5] 

    

    PSP - La parte che si può sovrascrivere
     
bulletLe successive 36 locazioni del PSP (da 005CH a 007FH) sono utilizzate dal DOS per annotare le caratteristiche di 2 (eventuali) files, che l'eseguibile a cui corrisponde il PSP presume di aprire, usare e chiudere.
bulletSono dunque tutte significative solo nella gestione dei files con le (obsolete) strutture File Control Block, quindi non sono indispensabili e, dopo aver ultimato l'eventuale servizio, possono essere riutilizzate senza problemi dal programma.
bulletQueste strutture, nella versione standard, si basano su tabelle di 37 bytes, mentre nelle ultime versioni estese coinvolgono anche i 7 bytes allocati davanti a quelli standard e indicati in grigio, nella figura seguente, per sottolineare che la loro dimensione non va computata nel totale.
bulletSubito dopo la creazione del PSP (cioè prima che il programma prenda il controllo della sua memoria) il contenuto di questa zona (valutato con l'amico Debug) è mostrato nella parte alta della figura (in basso i dettagli in chiaro); si noti la stringa di comando che, in pratica, passa i nomi dei 2 files (fileuno.com e file2.com) al programma eseguibile prova.com (sebbene esso non sappia che farsene...):

      

C:\ARCH-LAB\LAVORO>debug prova.com fileuno.com file2.com
-d 0
0CB8:0055                00 00 00 00 00 00 00 00 46 49 4C        ......FIL
0CB8:0060 45 55 4E 4F 20 43 4F 4D 00 00 00 00 00 46 49 4C EUNO COM.....FIL
0CB8:0070 45 44 55 45 20 43 4F 4D 00 00 00 00 00 00 00 00 EDUE COM........
0CB8:0055 00 00 00 00 00 00 00 
0CB8:005C 00 46 49 4C 45 55 4E 4F 20 43 4F 4D      FILEUNO COM
0CB8:0068 00 00 00 00  
0CB8:006C 00 46 49 4C 45 44 55 45 20 43 4F 4D      FILEDUE COM
0CB8:0068 00 00 00 00 00 00 00 

      

bulletNella gestione dei files con i FCB, dunque, le locazioni sono utilizzate...

      

Offset N° bytes°

Descrizione

0055 7
  ... per la parte estesa del primo FCB.
005C 16
  ... come parte standard del primo FCB, e rappresentano l'area destinata alla descrizione del file non ancora aperto il cui nome è passato sulla linea di comando come primo parametro.
  Se, nonostante sia superata, questa tecnica viene effettivamente utilizzata per aprire il file, le (16) locazioni destinate alla descrizione del file non aperto non sono sufficienti: la struttura completa del FCB deve disporre di 37 bytes che, inevitabilmente verranno ad occupare tutto lo spazio del PSP fino all'indirizzo 007FH compreso, cioè fino alla fine di questa prima parte di PSP.
0065 7
  ... per la parte estesa del secondo FCB.
006C 20
  ... come parte standard del secondo FCB, e rappresentano l'area destinata alla descrizione del file non ancora aperto il cui nome è passato sulla linea di comando come secondo parametro.
  Da notare che se il file passato come primo parametro viene effettivamente aperto questa struttura (destinata a descrivere il secondo) viene sovrascritta e quindi persa senza speranza; in questo caso è opportuno spostarla altrove prima di aprire il file precedente.
  Se invece si desidera usare questa struttura per aprire il secondo file conviene ricordare che le (20) locazioni destinate alla descrizione del file non aperto non sono sufficienti: la struttura completa del FCB deve disporre di 37 bytes che, inevitabilmente terranno occupata la memoria fino all'indirizzo 008FH compreso, in pratica oltre la prima metà del PSP.

      

bulletLe ultime 128 locazioni del PSP (da 0080H a 00FFH) sono senz'altro riutilizzabili senza problemi dal programma.
bulletDi solito questa zona di memoria è usata dal Dos per 2 funzioni molto specifiche e assolutamente contingenti:
bulletcome Buffer temporaneo di default per i dati da trasferire da e verso un disco: quest'area è significativa solo con le (obsolete) funzioni DOS che gestiscono i files con la tecnica dei FCB, File Control Block; in questo caso assume il nome di Area di Trasferimento per il Disco (DTA, Disk Transfer Area).
bulletcome deposito della stringa dei parametri eventualmente passati al nostro programma sulla linea di comando; data la rilevanza di questa situazione, ne riparliamo in dettaglio nella pagina seguente.

      

Offset N° bytes°

Descrizione

0080 128
  Nella gestione dei files con i FCB, dunque, le locazioni sono utilizzate come DTA, Disk Transfer Area.
  Se, dopo il nome del file da eseguire, si scrivono altre parole (parametri), esse sono scritte comunque a partire da questo indirizzo.

    

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