Numéro d'article: 462492 - Dernière mise à jour: vendredi 2 décembre 1994 - Version: 1.0 Accès au registre BP en langage "C"Ancien nº de publication de cet article : F12492 Résumé
QUESTION : Comment accéder au registre BP du processeur pour l'appel de certaines interruptions logicielles depuis un module C ? REPONSE : Les structures _BYTEREGS et _WORDREGS constituant l'union _REGS définie dans DOS.H ne possèdent pas de membres permettant d'accéder au registre BP. Cette absence prohibe l'usage des fonctions _int86, int86x, _bdos et _intdosx pour l'appel d'interruptions logicielles travaillant sur le registre CPU BP (par exemple INT 10H AH=11h). Depuis un module en langage "C", il faut avoir recours à l'assembleur en ligne (_asm) pour accéder aux registres et réaliser l'appel à l'interruption. Des précautions doivent être prises car le registre BP est utilisé pour tout accès aux variables automatiques. Quelques règles doivent être IMPERATIVEMENT appliquées pour pouvoir manipuler BP dans un bloc d'instructions assembleur "inline". Avant l'appel à l'interruption : -------------------------------- - Avant l'initialisation de BP celui ci doit être sauvé, un empilage semblant le plus simple (push BP). - Apres avoir modifié BP, aucune variable automatique et aucun paramètre de la fonction ne seront accessibles. Après l'appel à l'interruption : -------------------------------- - Si la valeur de BP doit être exploitée, il faut la ranger dans un autre registre ou dans une variable globale (éventuellement déclarée "static" dans le corps de la fonction), surtout pas dans une variable faisant référence à une variable automatique ou un des paramètres de la fonction. - Restaurer la valeur de BP originelle par dépilage (pop BP) si celle ci est dans la pile. Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. |

Retour au début
