Question

Il semble que ce qui suit est une méthode courante donnée dans de nombreux didacticiels sur la commutation d'un processeur de 16 bits à 32 bits:

    mov     eax, cr0            ; set bit 0 in CR0-go to pmode
    or      eax, 1
    mov     cr0, eax

Pourquoi ne ferais-je pas simplement ce qui suit:

    or      cr0, 1

Y at-il quelque chose que je suis absent? Peut-être la seule chose que je peux penser est que je ne peux pas effectuer une opération comme celui-ci sur le registre CR0.

Était-ce utile?

La solution

L'opérateur or ne dispose pas d'un code op dans lequel il peut accéder au registre CR0. (Il est impossible d'effectuer cette opération sur le registre CR0.)

Voilà pourquoi le mov est là: il existe un op-code qui peut accéder au registre CR0

.

Autres conseils

ou est un opérateur de comparaison où il prend en fait deux valeurs et crée une solution. La solution est stockée dans eax après la ou opération est terminée. Ou ne peut pas être utilisé un registre de stockage est une opération spécialisée et est régie par la portée et qui est la raison pour laquelle il est bon de prendre ses résultats et stocker immédiatement la nouvelle valeur juste après la fin du processus.

Élaborant sur ce qui a été dit au sujet de l'utilisation ou avec des opérandes, il n'a pas la capacité de stockage, il effectue simplement une opération sur des données identifiant déjà présents. Pensez ou comme un bouton sur une calculatrice où il a une opération comme ajouter, soustraire, multiplier ou diviser. Le code est le calculateur qui gère les tampons de mémoire; etc., et utilise les services d'un opérateur / exploitation des données au sein de ses magasins de mémoire et lorsque vous avez terminé obtient les résultats de retour pour d'autres opérations ou de sortie terminé à l'utilisateur.

La question est ici une logique ainsi que le code étant bien pensé et concis -. Trucs sympa

Essayer cette force et 1 à CR0 dans une commande:

MOV cr0, 1
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top