Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1289 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Programmation d'un mini OS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programmation d'un mini OS

n°1325564
cris__tof
Posté le 15-03-2006 à 00:11:59  profilanswer
 

Salut à tous,
 
J'ai de grosses grosses difficultés dans la programmation d'un OS (machine intel 80x86). Je comprends à peu près toutes les choses qu'il y a à faire, mais au moment de coder en C bah c'est là que ca devient difficile : / (la prog est pas ma matière de prédilection :°)
Par exemple, pour gérer le changement de contexte pour mon noyau, j'ai très bien compris qu'il faut faire une "photographie" des registres qu'un processus p1 utilise id les sauvegarder dans un tableau (registres eax,ebx,ecx,edx,esi,edi,cs,ds,es,ss,fs,gs,esp,ebp,esp et eflags) mais je vois pas du tout comment sauvegarder les valeurs de ces registres  :??:  :??: Je présens l'insertion d'assembleur, mais j'ai franchement beaucoup de mal.
Si quelqu'un a des tuyaux pour me faire avancer, m'aider dans la compréhension ce serait bien sympa. :]
 
PS : c'est mon premier post sur le forum, bien que j'aille tous les jours sur hfr :p. Merci de pas être trop méchant avec moi :]

mood
Publicité
Posté le 15-03-2006 à 00:11:59  profilanswer
 

n°1325565
mikala
Souviens toi du 5 Novembre...
Posté le 15-03-2006 à 00:32:16  profilanswer
 

je pense que la catégorie programmation est plus approprié a ce genre de posts.
Je déplace [:cupra]

n°1325566
push
/dev/random
Posté le 15-03-2006 à 00:44:20  profilanswer
 
n°1325567
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-03-2006 à 00:45:00  profilanswer
 

ben pour sauvegarder les registres, le mieux est de faire un bon vieux push [:petrus75]
mais dis moi, y'a quand même plus simple pour commencer à programmer que d'attaquer un OS non [:petrus dei]

n°1325568
cris__tof
Posté le 15-03-2006 à 00:49:33  profilanswer
 

Et bien j'ai déjà programmé pas mal d'autres trucs, en luttant c'est vrai. Et là pour l'OS j'ai pas trop le choix à vrai dire.
Sinon pour reprendre le topic je vois toujours pas comment avec un push j'arriverai à mettre les valeurs contenues dans les registres dans un unsigned long contexte[Nb_Registres] :s

n°1325608
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-03-2006 à 08:16:51  profilanswer
 

cris__tof a écrit :

Et bien j'ai déjà programmé pas mal d'autres trucs, en luttant c'est vrai. Et là pour l'OS j'ai pas trop le choix à vrai dire.
Sinon pour reprendre le topic je vois toujours pas comment avec un push j'arriverai à mettre les valeurs contenues dans les registres dans un unsigned long contexte[Nb_Registres] :s


longjmp() / setjmp() est fait pour ça...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1325721
cris__tof
Posté le 15-03-2006 à 11:55:15  profilanswer
 

Je ne peux pas utiliser setjmp.h -__-

n°1325734
cris__tof
Posté le 15-03-2006 à 12:11:29  profilanswer
 

J'ai le droit à ces macros  :
 
#define __MOVSB__(dest, src, n)    \
 __asm__ __volatile__(    \
  "rep\n"     \
  "\tmovsb"    \
  : "=S" (src), "=D" (dest), "=c" (n) \
  : "0" (src), "1" (dest), "2" (n) \
  : "memory", "cc" )
 
#define __MOVSL__(dest, src, n)    \
 __asm__ __volatile__(    \
  "rep\n"     \
  "\tmovsl"    \
  : "=S" (src), "=D" (dest), "=c" (n) \
  : "0" (src), "1" (dest), "2" (n) \
  : "memory", "cc" )
 
Mais après recherches sur le net ( http://www-128.ibm.com/developerwo [...] /l-ia.html ) j'ai du mal à comprendre leur fonctionnement.

n°1325760
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 15-03-2006 à 12:56:38  profilanswer
 

encore de la syntaxe AT&T [:psychokwak]
la macro MOVSB copie n octets de src vers dest
la macro MOVSL copie n longs de src vers dest

n°1325762
cris__tof
Posté le 15-03-2006 à 12:58:13  profilanswer
 

Merci pour l'info :]
Ceci dit j'ai toujours pas trouvé ma solution pour mettre les valeurs des registres dans un tableau :p

mood
Publicité
Posté le 15-03-2006 à 12:58:13  profilanswer
 

n°1325876
cris__tof
Posté le 15-03-2006 à 15:09:38  profilanswer
 

Merci à Push pour l'url :} Je n'avais pas vu ton post. Ca m'aide pas mal.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Programmation d'un mini OS

 

Sujets relatifs
Excel : Fonction? Programmation ? Macro ? Help me Please !!!!UML - Débutant en programmation - Recherche de conseils
Programmation CGI en interne ?Programmation Macro touches de clavier
bloquer la connexion internet sur un pc par programmation[Concours de programmation]L'ultime jeu
Explication d'une "bonne" règle de programmation (points de sortie)programmation java/ihm
Programmation VBA comboboxBjr, je suis nouveau sur le forum et debut en programmation SQL
Plus de sujets relatifs à : Programmation d'un mini OS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR