Section courante

A propos

Section administrative du site

Qu'est-ce que c'est l'entête NE ?

L'entête NE est utilisé par les fichiers exécutables de l'environnement graphique et du système d'exploitation Windows ainsi que par le système d'exploitation OS/2 de l'entreprise IBM. Habituellement, cette entête ce situe après le déplacement 0080h de départ de l'entête MZ du format EXE original. S'il est situé avant, cette situation risque de provoquer des conflits dans l'environnement graphique de Windows.

Descriptions

Voici la significations des différentes informations contenu dans le tableau :

Entête NE (Nouveau Exécutable) :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h 2 octets Ce champ contient la signature "NE" 4Eh 45h
0002h Octet Ce champ contient la version de liaison (Linker major version) 01h
0003h Octet Ce champ contient la sous-version de liaison (Linker minor version) 00h
0004h Mot Ce champ contient le déplacement de départ de l'entête de la table d'entrée. 00h 00h
0006h Mot Ce champ contient la longueur de la table d'entrée. 00h 00h
0008h Double mot Ce champ contient le code CRC du fichier à chargé (0 avec TPW de Borland) 00h 00h 00h 00h
000Ch Octet Ce champ contient le drapeau du programme : 00h
Bit(s) Description
0 à 1 Type DGROUP
0 = Aucun
1 = Partage simple
2 = Multiple (non partagé)
3 = (nulle)
2 Initialisation global
3 Mode protégé seulement
4 Instructions code machine de la famille 8086
5 Instructions code machine de la famille 80286
6 Instructions code machine de la famille 80386
7 Instructions coprocesseur mathématique 80x87
000Dh Octet Ce champ contient les drapeaux d'option de l'application 00h
Bit(s) Description
0 à 2 Type d'Application :
001b = Plein écran (pas l'environnement de Windows ou le P.M. API d'OS/2)
010b = Compatible avec Windows/P.M. API
011b = Utilise Windows/P.M. API
3 C'est une application de la famille d'OS/2.
5 0 = Exécutable, 1 = Erreurs dans l'image
6 Programme non-conforme (Pile valide n'est pas maintenu)
7 DLL ou pilote de l'Application
(Si l'information SS:SP est invalide, CS:IP pointes sur une routine FAR d'initialisation appeler avec 
  AX=Handle du module handle lequel retourne
       AX=0000h en cas d'échec, 
       AX<>0000h si l'initialisation est un succès)
000Eh Mot Ce champ contient l'index de données segment automatique 00h 00h
0010h Mot Ce champ contient la taille initiale du tas local 00h 00h
0012h Mot Ce champ contient la taille initiale de la pile (additionné au segment de donnée, 0000h si SSDS) 00h 00h
0014h Double mot Ce champ contient le point d'entrée du programme (CS:IP), "CS" est le segment de l'index 00h 00h 00h 00h
0018h Double mot Ce champ contient un pointeur de la pile initiale (SS:SP), "SS" est l'index de segment. Si SS = Index de données segment automatique et SP = 0000h, le pointeur de pile est fixé au maximum de Index de données segment automatique, juste avant le tas local. 00h 00h 00h 00h
001Ch Mot Ce champ contient le compteur de segment 00h 00h
001Eh Mot Ce champ contient le compteur de référence du module  00h 00h
0020h Mot Ce champ contient la longueur de la table de nom non-résidente en octet. 00h 00h
0022h Mot Ce champ contient le déplacement de départ de l'entête de la table de segment. 00h 00h
0024h Mot Ce champ contient le déplacement de départ de l'entête de la table de ressource 00h 00h
0026h Mot Ce champ contient le déplacement de départ de l'entête de la  table de nom résident 00h 00h
0028h Mot Ce champ contient le déplacement de départ de l'entête de la table de référence 00h 00h
002Ah Mot Ce champ contient le déplacement de départ de l'entête de la table de nom d'importation (tableau de chaîne de caractères de format ASCIZ) 00h 00h
002Ch Double mot Ce champ contient le déplacement de départ de l'entête de la table de nom de  non-resident 00h 00h 00h 00h
0030h Mot Ce champ contient le compteur du point d'entrée déplacable contenu dans la table d'entrée. 00h 00h
0032h Mot Ce champ contient la taille d'alignement du fichier multiple de 512 (requérant un décalage de bit de 9) 00h 00h
0034h Mot Ce champ contient le nombre d'entrées dans la table ressource 00h 00h
0036h Octet Ce champ contient le système d'exploitation destinataire :
00h
Valeur Description
00h Inconnu
01h OS/2
02h Windows
03h MS-DOS 4.x européen
04h Windows 386
05h BOSS (Borland Operating System Services)
0037h Octet Autre drapeaux d'EXE 00h
Bit(s) Description
0 Supporte les noms de fichiers long
1 Mode protégée 2.X
2 Police de caractères proportionnel 2.X
3 Région "Gangload"
0038h Mot Déplacement de retour ou départ de la région "gangload" 00h 00h
003Ah Mot Déplacement de référence segment ou longueur de la région "gangload" 00h 00h
003Ch Mot Taille minimal de la région du "Swap Code" 00h 00h
003Eh Octet Sous-Version de Windows 00h
003Fh Octet Version de Windows 04h

Enregistrement de la table de segment NE :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Mot Déplacement dans le fichier (Décalage à gauche pour aligner sur le déplacement de demande d'octet) 00h 00h
0002h Mot Longueur de l'image dans le fichier (0000h = 64Ko) 00h 00h
0004h Mot Attributs de Segment 00h 00h
Bit(s) Description
0 Segment de donnée reliée au segment de code
1 Inutilisé?
2 Mode réel
3 Héritage
4 Déplaçable
5 Partagable
6 Préchargeable demande chargement
7 Execute seulement (codes) ou lecture seulement (données)
8 Rélaction des segments nécessaires?
9 Information de déboguage présent
10,11 80286 DPL bits
12 Injectable de la mémoire
13 à 15 Priorité d'injection de la mémoire
0006h Mot Nombre d'octets devant être allouée dans le segment (0000h = 64Ko) 00h 00h

Table d'entrée NE (un item de la liste) :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Octet Nombre de point d'entrée (00h si c'est la fin de la liste) 00h
0001h Octet Numéro de Segment (00h si c'est la fin de la liste) 00h
0002h 3 octets Entrée d'enregistrements 00h 00h 00h
Déplacement Type Description
0000h Octet Drapeaux
Bit 0: Exporter
Bit 1: Simple données
Bits 2-7: Inutilisé
0001h Mot Déplacement dans le segment

Donnée de réallocation NE :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Mot Nombre de réallocation d'items. 00h 00h
0002h 8 Octets par item Réallocation d'items [Items]
Déplacement Type Description
0000h Octet Type de réallocation:
00h = LOBYTE
02h = BASE
03h = PTR
05h = OFFS
0Bh = PTR48
0Dh = OFFS32
0001h Octet Drapeaux
Bit 2: Additive
0002h Mot Déplacement dans le segment
0004h Mot Adresse destinataire dans le segment
0006h Mot Adresse destinataire dans le déplacement

Données ressource NE :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Mot Compteur de décalage pour les données ressouces. 00h 00h
0002h Octets Enregistrement de ressource [Enregistrements]
Déplacement Type Description
0000h Mot Type d'identicateur (ID)
0000h si c'est la fin de la ressource des enregistrements
>= 8000h si le type est entier
autrement le déplacement de départ est dans la table de ressource au type de chaîne de caractères.
0002h Mot Nombre de ressource dans le type
0004h Double mot Réservé pour l'exécution.
0008h Mot Entrée de la ressource (NE)

Ressource d'entrée NE :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Mot Déplacement d'alignement des unités de démarrage pour le fichier contenant les ressources de données. 00h 00h
0002h Mot Longueur de l'image ressource en octets. 00h 00h
0004h Mot Drapeaux
bit 4: Déplacable
bit 5: Partageable
bit 6: Préchargable
00h 00h
0006h Mot Identificateur de Ressource
>= 8000h si c'est une ressource entière autrement déplacement de départ de la ressource de la table de ressource.
00h 00h
0008h Double mot Réservé à des fins d'exécution. 00h 00h 00h 00h

Table de référence du module NE :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Octet Nombre d'enregistrements dans cette partie (00h si c'est le dernier de la table) 00h
0001h Octet Indicateur de Segment:
00h = Inutilisée
FFh = Segment déplacable, nombre de segment d'entrée autrement nombre de segment fixe.
00h
0002h Octets Format de l'enregistrement de segment  [Enregistrements]
Déplacement Type Description
0000h Octet Drapeaux
bit 0: Entrée des exportations
bit 1: Entrée utilisé globalement pour le partages des données
bits 7-3: Nombre de mots de paramètres
--- segment fixe ---    
0001h Mot Déplacement
--- segment déplacable ---    
0001h 2 Octets instruction INT 3Fh (CDh 3Fh)
0003h Octet Nombre de segment
    0005h Mot Déplacement  

Table d'entrée de nom non-résidente/résidente NE :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h Octet Longueur de la chaîne de caractères (00h si c'est la fin de la table) 00h 00h
0001h N Octets Texte ASCII de la chaîne de caractères 00h 00h
N+1 Mot Nombre ordinal  (index dans la table d'entrée) 00h 00h

Référence

Ralf Brown's interrupt list, release 60



Dernière mise à jour : Mardi, le 24 juin 2014