ecriture vers le port parallèle
Bonjour Tout le monde,
J'essaye d'ecrire vers le port parallèle,
à la compilation de mon code, j'ai pas d'erreur mais à l'exécution, j'ai un problème au niveau de l'instruction mov.
Voici le code que j'essaye d'exécuter:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include "stdafx.h"
#include <iostream.h>
#include <stdlib.h>
char lire(unsigned short adr);
void ecrire(unsigned short adr,char out_char);
char lire(unsigned short adr)
{
//#pragma inline
unsigned char ret_char;
__asm
{
mov dx,adr
in al,dx
mov ret_char,al
}
return(ret_char);
}
void ecrire(unsigned short adr,char out_char)
{
__asm
{
mov al,out_char
mov dx,adr
out dx,al
}
}
int main(int argc, char* argv[])
{
cout << "\n Fin d'ecriture, Lisons\n";
system("pause");
//ecrit sur le port parallele la valeur 10
ecrire(0X0378,'a');
//lit le port parallele
cout<<lire(0X0378);
return 0;
} |
Erreur au niveau de
Que faire puisque l'erreur est instruction privilegiée ??
Re: ecriture vers le port parallèle
Citation:
Envoyé par Luther13
J'essaye d'ecrire vers le port parallèle
Que faire puisque l'erreur est instruction privilegiée ??
Le temps de la bidouille est révolu.
Comme on l'a dit souvent, un accès direct au matériel n'est généralement pas possible en mode user. Il faut être en mode privilège (Ring0 sur x86). Pour ça, il faut passer des interruptions (sale) ou par un driver (propre).