2010-08-09 10 views
3

Comment puis-je effectuer des instructions restreintes telles que IN et OUT à partir du mode protégé?Assemblage - Niveaux de privilège

J'ai découvert qu'il faudrait un niveau de privilège (CPL) suffisamment élevé pour exécuter l'instruction E/S. Comment est-ce que je peux courir en mode de noyau, ai l'autorisation d'IO ou n'importe quoi d'autre qui peut m'aider? - Je voudrais avoir un accès direct au matériel, sans que rien ne me bloque.

Merci.

+0

En supposant que vous exécutez sous un système d'exploitation tiers, vous devez écrire un pilote en mode noyau. Comment vous faites cela dépend fortement de ce que vous avez exactement. En outre, il pourrait être utile de savoir exactement ce que vous essayez de faire avec cela. Voulez-vous programmer un matériel inhabituel ou avez-vous un autre objectif en tête? – bcat

+1

En fait j'essaie d'accéder à du matériel simple tel que le clavier. Vous pouvez jeter un oeil à cette question: http://stackoverflow.com/questions/219120? C'est essentiellement ce que j'essaie de faire - accéder aux périphériques IO en utilisant l'IN et OUT, tout comme la première réponse sur le lien donné. – Barak

+3

Je pourrais ajouter que je fais une application d'assemblage 16 bits, qui serait probablement émulée en utilisant DOS-Box – Barak

Répondre

1

Le DOS n'est pas un système d'exploitation protégé. Dans les temps anciens, il y avait des cadres PM nommé DOS extenders. Ils ont une API pour des choses comme ça. La création de votre propre environnement PM consiste beaucoup plus que simplement à passer le CPU en mode protégé.

Vous devez également utiliser un programme de débogage pour vérifier ce qui ne va pas dans DosBox.