Page 1 sur 1

!Int 33h

Publié : lun. 09/oct./2006 17:14
par SPH
Salut Tonton, et aux autres ASMiens,
Je souhaitais utiliser pour la premiere fois une interruption sous PB. Mais voila, PB me detecte une erreur (non pas dans ce code asm, mais dans une instruction PB) : INVALID MEMORY ACCES

Appel a int 33h pour lire (ax=3) les coordonnees souris :

Code : Tout sélectionner

!mov ax,3
!Int 33h
!mov [v_xm],cx
!mov [v_ym],dx
Qu'est ce qui se passe ?? :o

Publié : lun. 09/oct./2006 17:48
par erix14
Depuis je ne sais plus quelle version de Windows, celui-ci interdit les interruptions pour des raisons de sécurité. J'avais lu un article là-dessus il y a déjà quelque temps... Je ne peux en dire plus, fait des recherches sur Google.

Publié : lun. 09/oct./2006 17:59
par SPH
Zoké

Publié : lun. 09/oct./2006 18:01
par Patrick88
depuis Nt, il me semble

pat

Publié : lun. 09/oct./2006 19:04
par tonton
Windows XP travaille en ring3, c est un niveau de privilège sécurisé qui interdit tout accès
aux données du bios et a ces routines .
pour pouvoir utiliser les interruptions du bios , il faut passer en ring0, qui lui, permet un accè
a toute la mémoire du systèmes.Des astuces capricieuses permettent de passer sous ce mode, mais sont complexes a mettre en œuvre. Je me suis moi-même cassé les dents .Je n ai trouvé aucun code assembleur qui n utilise pas de drivers spéciaux(colgate, api..). Inutile de dire qu il est plus sage d’ utiliser les fonctions purebasic, a moins que tu sois un grand aventurier.