begin process at 2012 05 25 11:42:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Forum general 80xxx

 > 

operands 16/32bits


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

operands 16/32bits

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ée 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

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,250 sec (4)

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