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 Windows et d'OS/2. Habituellement, cette entête ce situe après l'offset 0080h de départ de l'entête MZ. S'il est situé avant, cela risque de provoquer des conflits dans l'environnement graphique de Windows.

Description

Offset (Hex) ou Deplacement (Hex) = L'offset dans le fichier, il s'agit d'un déplacement a effectuer par rapport à son entête. Les valeurs utilisées sont 0 à 9, ensuite de A à F.

Type = Type de valeures.
1. Octet = Une valeur situé entre 0 et 255
2. Mot = Une valeur situé entre 0 et 65535 (2 octets = 256 x 256 = 65536)
3. Double Mot = Une valeur situé entre 0 et 4294967295
(4 octets = 256 x 256 x 256 x 256 = 4294967296)

Description = Description de l'offset courant.

Valeur de démarrage (Hex) = Valeur de démarrage recommendé  dans un fichier exécutable vide.

Headersize = Taille de l'entête. L'entête peut aller jusqu'à 512 octets.

Entête NE (Nouveau Exécutable) :

Déplacement (Hexadécimal) Type Description Valeur de démarrage (Hexadécimal)
0000h 2 octets Signature "NE" 4Eh 45h
0002h Octet Version de liaison (Linker major version) 01h
0003h Octet Sous-version de liaison (Linker minor version) 00h
0004h Mot Offset de départ de l'entête de la table d'entrée. 00h 00h
0006h Mot Longueur de la table d'entrée. 00h 00h
0008h Double mot Code CRC du fichier à chargé (0 avec TPW de Borland) 00h 00h 00h 00h
000Ch Octet Drapeau de programmes 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 Drapeaux d'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 Index de données segment automatique 00h 00h
0010h Mot Taille initial du tas local 00h 00h
0012h Mot Taille Initial de la pile (additionné au segment de donnée, 0000h si SS <> DS) 00h 00h
0014h Double mot Point d'entrée du programme (CS:IP), "CS" est le segment de l'index 00h 00h 00h 00h
0018h Double mot 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 Compteur de segment 00h 00h
001Eh Mot Compteur de référence du module  00h 00h
0020h Mot Longueur de la table de nom non-résidente en octet. 00h 00h
0022h Mot Offset de départ de l'entête de la table de segment. 00h 00h
0024h Mot Offset de départ de l'entête de la table de ressource 00h 00h
0026h Mot Offset de départ de l'entête de la  table de nom résident 00h 00h
0028h Mot Offset de départ de l'entête de la table de référence 00h 00h
002Ah Mot Offset 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 Offset de départ de l'entête de la table de nom de  non-resident 00h 00h 00h 00h
0030h Mot Compteur du point d'entrée déplacable contenu dans la table d'entrée. 00h 00h
0032h Mot Taille d'alignement du fichier multiple de 512 (requérant un décalage de bit de 9) 00h 00h
0034h Mot Nombre d'entrées dans la table ressource 00h 00h
0036h Octet Système d'exploitation destinataire
00h - Inconnu
01h - OS/2
02h - Windows
03h - MS-DOS 4.x européen
04h - Windows 386
05h - BOSS (Borland Operating System Services)
00h
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 Offset de retour ou départ de la région "gangload" 00h 00h
003Ah Mot Offset 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 Offset dans le fichier (Décalage à gauche pour alligner sur l'offset 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
Offset Type Description
0000h Octet Drapeaux
Bit 0: Exporter
Bit 1: Simple données
Bits 2-7: Inutilisé
0001h Mot Offset 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]
Offset 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 offset dans le segment
0004h Mot Adresse destinataire dans le segment
0006h Mot Adresse destinataire dans l'offset

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 l'offset 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 Offset d'alignment 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 Offset
--- segment déplacable ---    
0001h 2 Octets instruction INT 3Fh (CDh 3Fh)
0003h Octet Nombre de segment
    0005h Mot Offset  

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