Conversion d'adresses mémoire vers octets
Bonjour,
Tout d'abord, Merci à l'avance de pouvoir m'aider à pallier à ce problème.
Voici mon problème :
Je suis en ce moment en train de programmer un OS, j'ai déjà fait un secteur d'amorçage. Maintenant, je me suis dit que je vais tout écrire ce que je doit faire dans des fichiers ou sur papier afin de, au moment ou je commencerai à coder le noyau, ne pas avoir a réfléchir à ce que je dois faire. Je suis donc en train de réfléchir à l'organisation de la mémoire et j'ai un problème car, je veux faire correspondre une adresse mémoire du type 0xA15F (c'est un exemple) en un numéro d'octet. Je sais faire toute les conversions de données informatiques, mais quand j'ai cherché sur Internet la solution, j'ai trouvé que la concordance entre une Adresse Mémoire et un numéro d'octet, n'était pas du à la simple conversion Hexadécimal -> binaire ou octale.
Je me pose donc la question suivante :
Comment fait-on pour convertir une Adresse Mémoire du type 0xA15F en un numéro d'octet comme celui du premier Kilooctet de la RAM ?
Merci encore à l'avance pour les réponses que vous pourriez me donner. J'espère vraiment avoir régler ce problème très rapidement.
P.S. : Si ça ne vous dérange pas, je vous demande de me donner une réponse assez rapidement, car j'ai un tableau de concordance de 4 go d'Adresses à faire une fois le problème résolu.
Convertion d'adresses Mémoires vers octets
Bonjour,
Ce que je veux faire, c'est un tableur contenant 2 lignes, une pour les adresses mémoires et l'autre pour les octets, et chaque colonne, c'est la correspondance entre une adresse mémoire de la première ligne et un octet de la deuxième ligne.
Conversion d'adresse Mémoires vers octets
Bonjour,
Oui, je sais mon OS doit démarrer en 0x07C0, mais le tableau, c'est sur une feuille de papier ou un fichier Excel par exemple. Si je le fais, c'est juste pour m'y retrouver plus facilement dans ma gestion de la mémoire (elle est très compliquée, mais à l'avantage de rendre le système rapide). Si ma gestion de la mémoire était simple, je ne serait pas obliger de faire ce tableau. C'est purement pour ne pas avoir à me retrouver avec une erreur de RAM durant mes tests.
J'espere que vous pourriez me donner une réponse rapide, si vous avez besoin encore d'informations, je peux vous envoyer un schéma des différentes parties de la mémoire sous mon OS.
Conversion d'adresses mémoires vers octets
Bonjour Forthman,
Oui, c'est un peu ça, mais dites le moi si je me trompe mais dans la cartographie de la RAM faites par le BIOS qu'on peut récupérer avec une interruption, les adresses qu'on récupère sont toujours sous forme 0xF23A (c'est un exemple). Or si le BIOS les donne toujours sous cette forme, moi cela ne me convient pas.
Je voudrais savoir le numéro de l'octet (par exemple le 1024(1 Ko)) qui correspond à une de ces adresses.
Je pense, et c'est normal, que vous ne compreniez pas vraiment à quoi cela va pouvoir me servir, mais croyez moi, cette correspondance est pratiquement obligatoire pour implémenter ma propre gestion de la mémoire dans mon OS.
Conversion d'adresses Mémoires vers octets
Bonjour,
Bon, si cela peut vous aider à me fournir de l'aide, je vais vous donner la première partie de ma gestion de la mémoire :
- Le premier Mégaoctet de la RAM utilisable par mon OS: Variables de démarrage, protection des registres et tri des données envoyées a XKEY 1 (mon moteur d' OS).
Et si je veux savoir a quel numéro d'octet correspond une adresse Mémoire, c'est pour savoir d'où à où va le premier Mo (pour ce qui concerne la partie de la gestion expliquée au dessus).
J'espère que vous comprenez maintenant ce que j'aimerai faire et que vous me donnerez bientôt une réponse à mon problème, car sans ca, il m'est difficile de continuer.
Conversion d'adresse Memoires vers octets
Bonjour,
Donc, je vois que je m'explique très mal et que vous n'arrivez pas à pouvoir me répondre. Je vais, du coup mettre en résolu, même si je n'ai pas résolu mon problème. Je vais devoir me débrouiller autrement.
Si par hasard, vous arrivez finalement à comprendre, et que vous voulez m'aider, vous pouvez le faire en m'écrivant à cette adresse :
rprogramm.pc1@outlook.com
Conversion d'adresse Memoires vers octets
Bonjour,
Je sais que cette discussion est censée être en résolu, mais, j'ai trouvée la solution à mon problème et je me suis dit qu'il y aurait peut-être des gens qui en aurait besoin un jour. Voici la solution.
Techniquement, une adresse du type 0x8A54 ne peut pas se convertir en octets par la simple utilisation d'une conversion entre hexadécimal et octets sous forme décimal. Mais, nous pouvons écrire 0x8A54 comme ca : 8A54 (en mode protégé). Et bien sûr, suivant la gestion de la mémoire que nous avons décidé de faire, l'écart et la précision entre 0x8A54 et 8A54 est nulle. Et il se trouve que la gestion de la mémoire d' XKEY 1 (le moteur d'OS d'OPEN) me le permet.
Source de la solution : Mes tests sur mon OS et mon moteur d'OS.