J'ai un programme C qui fonctionne sur x86 (sans système d'exploitation) en mode protégé. J'ai besoin de retarder l'exécution du programme pendant un certain temps. À l'heure actuelle, je fais ceci:Comment retarder l'exécution pendant une durée spécifiée de millisecondes en mode protégé?
for(p=0; p<1000000; ++p) asm("pause");
Mais cela semble très très mal (je reçois un retard, mais apparemment, je n'ai pas de contrôle réel sur la durée: la durée de la « pause » est non défini) . Maintenant, je ne suis pas vraiment expérimenté avec des choses à un niveau aussi bas, et j'ai cherché des solutions sur le net, mais jusqu'à présent, le seul que j'ai trouvé impliquait des interruptions du BIOS, qui ne fonctionnent pas en pmode (ou alors on m'a dit). Alors, comment retarder l'exécution en mode protégé?
Qu'avez-vous mis en service à ce stade? Le PIT aiderait. Sinon, il y a probablement des ports que vous pouvez lire qui ont un timing prévisible (bien que je n'en connaisse aucun). Peut-être que l'attente de rafraîchissement vertical pourrait fonctionner (bien sûr, cela ne fonctionnera pas pour des délais très courts). – user786653
Si vous n'avez pas d'OS, pourquoi devez-vous courir en mode protégé? –