begin process at 2010 02 09 17:04:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Aide a la programmation Windows

 > 

passer en "mono-tache" sous XP ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

passer en "mono-tache" sous XP ???

mercredi 13 août 2003 à 17:34:45 | passer en "mono-tache" sous XP ???

toto8966

Bonjour a tous,
Jaimerais pouvoir passer en mono-tache sous Windows XP, le temps nécessaire a l'exécution d'une routine assembleur et ensuite revenir a la situation initiale. Pendant l'exécution de cette routine assembleur, j'aimerais que le CPU me consacre 100% de son temps et ignore completement la totalité des autres taches.
PS: J'ai acces au niveau RING0 ... si ca peut aider !
Des principes de fonctionnement sur le multi-tache ne vont pas m'aider beaucoup ! mais si vous avez des infos précises sur le sujet que je cherche ... Je suis Va-che-ment intéressé grave !!! merci ...
jeudi 14 août 2003 à 12:08:09 | Re : passer en "mono-tache" sous XP ???

Vermifuge

Ben, en fait personne n'a vraiment accès au code source du kernel de windows, mais il doit utiliser les mêmes interruptions, à savori l'interruption 9( qui est un timer, par défaut 1024 fois par secondes ). Il doit( on en est pa sûr ! ) dérouter ce timer vers le scheduler qui est là pour changer d'application( n'oublie pas que ton PC ne gère qu'un tâche à la fois ! ). En gros, il faut trouver l'addresse en mémoire du scheduler et le changer temporairement pour qu'il ne fasse rien( un "ret" pas exemple ). Crois-moi, ce que tu demande n'est pas simple.
Une autre solution, qui n'est pas forcément fiable à 100% des cas, mais qui fonctionne à 90% est de passer toutes les taches en priorité 'idle' et de passer le temps de la routine en 'REAL_TIME', comme c'est une routine assembleur, elle ne doit pas être très longue en temps d'éxécution. Evidement, cette technique n'est pas totalement fiable mais doit pouvoir fonctionner avec de bons résultats sans toute fois compliquer trop le programme.


Vermifuge
vermi-fuge@libertysurf.fr
jeudi 14 août 2003 à 19:43:24 | Re : passer en "mono-tache" sous XP ???

toto8966

merci de m'avoir répondu.
J'ai bien tout compris !
mais que penses tu de ce ci :
j'ai acces au mode Ring0 ... en Ring0, si je commence ma routine par un " cli " ... t'en pense quoi toi ? Y'en a qui me dise que si je place un " cli " en Ring0, je bloque toutes les interruptions et plus aucune autres taches ne viendra interrompre ma routine assembleur ... jusqu'au " sti " de cloture ? t'es d'accord avec ca toi ?
tout grand merci de me répondre ...
vendredi 15 août 2003 à 19:21:05 | Re : passer en "mono-tache" sous XP ???

Vermifuge

Eh bien un "cli" ne fait strictement rien. L'instruction "cli" ne fonctionne qu'en mode réel( si tu connais pas les modes, va lire mon article sur http://codingskillz.free.fr/ ), hors WinXP tournant en mode protégé, les interruptions sont donc géré par ISR( Interrupt Service Routine ). Tu peux peut-être changer l'ISR depuis le mode 0( pour savoir comment faire, va lire mon artice( là, je crois que je fais un peut trop de pub ) ).

@+
Vermifuge
dimanche 17 août 2003 à 15:43:36 | Re : passer en "mono-tache" sous XP ???

toto8966

Hello,
Curieuse ta remarque ! Je respecte totalement ton avis, mais cela me semble curieux !
" Cli " ne fonctionne qu'en mode réel ... ???
Bein ... je pense pas ! je pense que l'instruction " cli " fonctionne aussi bien en mode réel que protégé !
Si " Cli " ne fonctionnait qu'en mode réel, quelle instruction serait alors utilisée en mode protégé pour inhiber les interruptions (ou exeptions, c'est comme tu veux).
Quand, en mode protégé, une exeption est déclanchée avec exécution de l'ISR correspondante ... cette ISR a besoin qu'on ne l'interrompe pas ... elle utilise quoi comme instruction alors ??? ... de plus ISR (Interrupt Service Routine) ... bein c'est jamais qu'une expression ! meme en mode réel, ou la, on parle d'interruption, il y a des " Interrupt Service Routine ". La notion d'ISR ne me semble pas spécifique au mode protégé.
Bon, maintenant, je ne suis pas le Bon Dieu, clair ! Et si je me permet de poser des questions dans le domaine, c'est que je ne suis pas un pro non plus !
Je peux aussi totalement me planter, mais alors qu'on m'explique plus ! je serai un bon élève ... hi
amicalement a tous ....




-------------------------------
Réponse au message :
-------------------------------

> Eh bien un "cli" ne fait strictement rien. L'instruction "cli" ne fonctionne qu'en mode réel( si tu connais pas les modes, va lire mon article sur http://codingskillz.free.fr/ ), hors WinXP tournant en mode protégé, les interruptions sont donc géré par ISR( Interrupt Service Routine ). Tu peux peut-être changer l'ISR depuis le mode 0( pour savoir comment faire, va lire mon artice( là, je crois que je fais un peut trop de pub ) ).
>
> @+
> Vermifuge
dimanche 17 août 2003 à 16:13:37 | Re : passer en "mono-tache" sous XP ???

Vermifuge

Je ne suis pas professionnel aussi, mais cependant j'ai trouvé
une source( kernel de "Boso" il me semble ), où le gars désactive toutes les interruptions au moyen de l'ISR. Il est cependant possible que la source soit bidon... Tu peux toujours essayer, quoique je pense que la solution de changer les priorités soit une bonne solution. :)
Je doute qu'un simple 'cli' soit en mesure de bloquer complètement le système( il y aurait des tonnes de virus de ce type ! ). Je ne sais pas, faut voir, mais je persiste à dir que l'ISR permet de désacter l'interruption de changement de task( qui est l'IRQ 8, ce n'est pas une interruption du mode réel, elle est spécifique au mode protégé ).

@+
Vermifuge
mardi 19 août 2003 à 01:45:22 | Re : passer en "mono-tache" sous XP ???

PierreF

L'instruction cli existe en mode protéger (je ne sais pas si je l'ai déjà tester, mais j'ai tester sti, donc cli marche), car j'ai déjà fait un petit OS en mode protéger, et si tu fait un sti avant d'intercepter les interuption tu a un crash assurer!

De plus la doc intel le dirait si cli et sti ne marcherait que en mode réel.


Si tu est en ring 0 et que tu fait un sti (il faut le ring0 pour fair un sti en mode Protéger) alors normalement RIEN n'arréte ton processus (le système, window ne peut plus prendre la main), sauf si tu appele le system (API) qui peut-être donne la main a windows
mardi 19 août 2003 à 19:35:12 | Re : passer en "mono-tache" sous XP ???

Vermifuge

Question bête, pourquoi tu fais le test ? Je viens de le faire sur Win98 et ça marche ! le CLI bloque toutes les interruptions du Win( Clavier, Souris, Sheduler, ... ), bref le crash parfait avec 1 instruction. Cependant, Win98 n'est pas préemptif, il y a donc une différence avec WinXP( WinXP tourne avec le noyau de Win2000, Win98( 2ièm édition ) tourne avec celui de Win3.11... ), il est donc possible que le CLI ne fonctionne pas avec XP. A voir, fais donc le test. :)

@+ Vermifuge
vermi-fuge@libertysurf.fr
http://codingskillz.free.fr/


Cette discussion est classée dans : temps, xp, tache, passer, mono


Répondre à ce message

Sujets en rapport avec ce message

Passer en RING0 sous Windows XP ! [ par toto8966 ] Hello, Pour pouvoir placer du code en mode Ring0 jutilise jusqu'a présent le Driver TVicHW32. ( http://www.entechtaiwan.com/tvichw32.htm ) Ca fonction Placer l'Interrupt Flag (IF) a zéro en Ring3 et sous XP ! [ par toto8966 ] La question est assez parlante ...et n'est pas anodine ... croyez le bien !Bien évidemment, en Ring3 sous Xp, CLI est interdit !Alors ?Comment trouver Problème sur les thèmes XP [MASM32] [ par frobinet ] Bonjour,je recherche des infos pour appliquer les thèmes XP en assembleur pour les boutons...J'ai vu qu'il faut utiliser les fonctions OpenThemeData,D Tasm sous win2000 et xp ? Comment programmer en mode protégé ? [ par hamburger_de_dinde ] Y a-t-il moyen de programmer en assembleur sous win2000 ou xp ?Le problème se pose quand je veux accéder à certains emplacements mémoire (0B800h par e temps d execution [ par sajid_morad ] salut tout le monde, voilà j aimerai bien savoir le temps d execution de chaque instruction en asm(add, mov, sar,sub,....) , pour pouvoir choisir les in / out windows XP : comment ? [ par cedc ] Bonjour à tousSous windows XP les instruction in / out sont interdites, comment peut on contourner le problème pour lire une adresse. Mon but étant de Projet en ARM: BESOIN D AIDE! [ par aurore7683 ] Bonjour, les gens!Je sollicite l aide de quelques passionnés de programmation en assembleur. Je m'explique: je dois faire un projet d informatique ( q routines d'interruptions sous XP [ par vecchio56 ] Bonjour, j'aimerais savoir s'il est possible de connaitre l'adresse des routines d'interruptions (j'ai entendu parler de vecteur d'interruptions), et Mode 13h en 32 bits protege [ par frostie ] Bonjour, je suis en train de travailler sur un micro-kernel en 32 bits mode protege C/ASM et je voudrais passer en mode VGA 13h (mode graphique). Le h routine compatible xp qui plante sous 2000 [ par statismeles ] Salut à tous,Je travaille avec MASM et jusqu'à présent je n'ai jamais eut de cas majeur d'incompatiblité d'une de mes sources avec windows de 95 à xp.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales