Bonjour,
Je précise tout de suite que mon application tourne sur Win98 et que j'ai fait appel à une petite routine en assembleur bien connue permettant d'accéder directement au port parallèle. Cependant en voulant bien faire les choses j'ai voulu passer un paramètre à ma fonction pour indiquer sur quel registre du port // je veux écrire. Ce paramètre contient l'adresse du registre ($378 pour l'adresse de base).
Voici le code
Mon problème est que ça ne marche pas lorsque j'appelle la méthode en faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 const ADRESSE_BASE = $378; {-----------------------------------------------------------------} { Méthode d'émission des bits en assembleur } procedure aout(adresse : word ; dat : byte);assembler; asm mov al,dat mov dx, adresse out dx,al end;Je ne comprends pas alors que si dans le code assembleur je met la valeur $378 directement à la place de la varibale asdresse ça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part aout(ADRESSE_BASE, 2); //exemple
Je suppose que c'est un problème de code non ? Mais je n'arrive pas à identifier le problème.
Quelqu'un aurait une idée ? Le type de la variable de convient pas au registre dx ?? Je ne comprends pas.
Merci
Partager