Envoyé par
Lovmy
Bonjour,
Je pensait que l'option de sélection de type de mémoire jouait sur le comment le compilateur accède aux données (si il met a jour DS suivant les variables à atteindre). Mais dans mon cas ce n'est pas trés grave, en fait je fait un petit test de programme qui tourne sans OS, donc je connait l'adresse de début de code : 07C0:000 pour le début du code boot (les 512 octets chargés par le bios), 07E0:0000 pour le début de mon code en C (le kernel), et TC me fournit une variable, _DATA, qui contient le segment de mes données. Donc si par exemple _DATA = 0E6D, je sais sur mon segment de donnée commence en 07E0+0E6D=164D (oui TC me donne le segment par rapport à 0, quand je compile il ne sais pas que mon code commencera au segment 07E0). A partir de la, sachant que mon segment de données ne dépassera pas un segment, j'en déduit qu'il est compris entre 164D:0000 et 164D:FFFF.
Donc je peut faire un pointeur sur 264D:0000, 364D:000 etc... Pour avoir autant de bloc de 64k que je veux, dans la limite des 640k.
Merci de vos reponses !