Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : operands 16/32bits [ Archives / Forum general 80xxx ] (gblade)

lundi 16 décembre 2002 à 20:55:44 | operands 16/32bits

gblade

qqun sait comment l'assembleur de débrouille pour qu'au chargement de notre exécutable les segments soient en 16 ou 32bits ? existe t il une instruction ou un opcode quelquonque qui puisse changer cela en mode réel (il est évident que l'on peut le changer en pmode ;) ?
sinon à défaut, qqun pourrait me proposer une solution pour changer de segment 16/32bits au moment d'effectuer la reinitialisation de la queue d'instructions (par un jmp far habituellement) juste après le passage en pmode ?

lundi 1 novembre 2004 à 23:22:05 | Re : operands 16/32bits

CodeFighter


-En mode réel, les operante de "mot" font 16 bits, donc par ex,

91h = xchg AX, CX

05h 90h 90h 90h 90h = add AX, 9090h ; nop ; nop ;

on peut quand même faire référance aux registres de 32 bits grâce au prefixe "operand size overide" : 66h

66h 05h 90h 90h 90h 90h =add EAX, 90909090h ;

-En mode protégé, le mot est de 32 bits, donc :

91h = xchg EAX, ECX

05h 90h 90h 90h 90h = add EAX, 90909090h ;

On peut revenir à un adressage de 16 bits avec un prefixe "operand size overide" : 66h

66h 05h 90h 90h 90h 90h = add AX, 9090h ; nop ; nop ;


-Donc, dire qu'un segment est 16 bits ou 32 bits c'est juste indiquer à ton compilateur que quand tu ecrit :

add EAX, 90909090h


il faudrat générer :
66h 05h 90h 90h 90h 90h

ou
05h 90h 90h 90h 90h


-On peut remarquer aussi que l'assembler n'est pas lié au chargement d'un exécutable ... c le systeme qui le fait

-Donc, je comprend pas trop le sens de ta question !!! désolé !
Mais au chargement, il n'y a aucune différance entre un segment de code qui doit s'exécuté en mode réel 16 bits ou en mode protégé 32 bits ! Le segment sera de toute façon interprété par raport au mode du processeur en cours.










Cette discussion est classé dans : changer, qqun, 32bits, pmode, operands


Répondre à ce message

Sujets en rapport avec ce message

passage en pmode [ par TRAX44 ] salut,g 1 petit pb, kan je ceu pa c en mode protégé mov eax, cr0 or al, 1 mov cr0, eax(g deja cree et charger la gdt)le pc pmode [ par TRAX44 ] salut, svp si ya kk1 ki c pa c en pmode i pourrai me passé sa source parce que je galère un max la dessu!! G suivi plusieur tutoriaux é a chaque foi s Projet X-OS (un mini système d'exploitation 16/32bits) [ par aladdin ] je suis entrain de développer un mini OS en 16/32 bits (surtout 32bits)et j'aimerais avoir des idées des propositions, et de participation au developp tasm, couleurs 32bits ou 24bits? [ par qbced ] Lu all! J'me suis mit à la prog asm, la j'arrive à afficher une image en 800*600*32bits, mais mon prob c'est que la plage memoire pour un pixel est de mappage clavier [ par S2R ] bon, voilà mon problème:j'ai commencé un ptit OS, et j'arrive pas à changer le clavier, il est en qwerty, et pas en azerty.Est-ce qu'il y a un moyen d


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.