Kernel Asm executer .exe .com

Messages postés
11
Date d'inscription
lundi 21 avril 2014
Statut
Membre
Dernière intervention
13 avril 2015
- - Dernière réponse : Cpcdos
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Statut
Membre
Dernière intervention
28 octobre 2016
- 13 avril 2015 à 13:51
bonjour a tous je suis nouveau sur se forum voila je me suis inspirer du code source de PEPIN pour un noyau en ASM donc voila mon souci le noyau démarre sans problème j'aimerai donc une aide pour démarrer un programme externe un *.exe ou *.com j'aimerai que l'ont m'explique comment cela fonctionne je suis sous Dos je de code sous windows 7 Merci Beaucoup
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Statut
Membre
Dernière intervention
28 octobre 2016
1
1
Merci
Le problème c'est qu'il faut que tu code le lecteur d'entête MZ
car ton kernel est incapable de savoir ce que c'est qu'un "fichier .exe" un "fichier .com" certes il contient des instruction 386 ou 486 ou autre mais ces fichiers exécutable contiennent aussi généralement des interruptions BIOS et DOS (21h) hors ton kernel avec pepin n'a pas la fonctionnalitée de lire un fichier de haut en bas, de décoder les instructions et ne sais pas ce que c'est que l'interruption 21h (dos)

En gros il faut que tu réécrive un mini dos dans ton kernel et un lecteur d'entête MZ (un lecteur de fichiers .exe et .com)

Voilà tout ;-)

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cpcdos
Messages postés
11
Date d'inscription
lundi 21 avril 2014
Statut
Membre
Dernière intervention
13 avril 2015
0
Merci
bonjour je toujours sur la création du kernel en asm et comme tu et le seul a m'avoir répondu je te repose une question comment je doit faire pour avoir toute les interruption 21h du dos ? a tu un programme pour charger ses interruptions ? j'ai trouver une liste des interruption dos 21h sur le net mais elle n'est pas complète aurez tu un bout de code ? merci
Commenter la réponse de tristan3215
Messages postés
11
Date d'inscription
lundi 21 avril 2014
Statut
Membre
Dernière intervention
13 avril 2015
0
Merci
Bonjour à tous j'ai finalement un kernel dos 16Bits qui démarre des fichier externe *.exe *.com en 16bits, le kernel a un lecteur l'entête MZ et les interruptions BIOS et DOS (21h) je peux donc faire appelle a un programme 16bits en Asm (x86) par exemple
voici ma nouvelle question :

comment passer en 32bits ?
j'ai essayer de charger la GDT mais en moment du passage en Mode Protéger le programme bug et plate total

je ne cherche pas a émuler le système en 32bits mais passer en 32Bits j'ai essayer plusieurs code nasm masm mais pareil sa plante .

quelqu'un a t'il une idée
Commenter la réponse de tristan3215
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Statut
Membre
Dernière intervention
28 octobre 2016
1
0
Merci
Salut!

Et bien je te conseille de passer en mode protégé avec un DPMI
(Dos Protected Mode Interface)

Tu peux regarder du coté des outils de Japheth (Hxdos)
Son article traduite ici :
http://www.traduction.cc/traduction/HX-DOS-Extender-13.html

Mais il faut absolument que tu aies une entête DPMI dans ton fichier executable
DJGPP, GCC, FreeBasic, Watcom c++, digital mars, power basic, jwasm, fasm etc... en font l'affaire

Cordialement
Sébastien FAVIER
Commenter la réponse de Cpcdos
Messages postés
11
Date d'inscription
lundi 21 avril 2014
Statut
Membre
Dernière intervention
13 avril 2015
0
Merci
Salut merci de ta réponse j'ai déjà.utiliser le dpmi hxdos mais il me faut les code source car il me manque deux interruption dans le noyau l'interruption 58h et 2fh et dans les dpmi hxdos il utilise l'interruption 58hdonc.ya un beugler et vu que.je n'est pas accès au code source je ne peux supprimer cette interruption à tu d'autre dpmi à me proposer ? Merci
Commenter la réponse de tristan3215
Messages postés
428
Date d'inscription
samedi 11 juillet 2009
Statut
Membre
Dernière intervention
28 octobre 2016
1
0
Merci
Il me semble bien que se sont des interruptions régie du DOS et non du DPMI
int 0x2F pour obtenir les info du logiciel en exécution et 0x58 pour un truc d'allocation de... j'sais plus quoi x)

Les supprimer ?
Mais pourquoi pas les utiliser tout simplement ?


Microsf01 Favier Sébastien 01
Commenter la réponse de Cpcdos