2017-07-29 4 views
0

Une recherche intensive m'a envoyé dans une boucle au cours de 3 jours, donc je compte sur vous pour m'aider à faire une pause.Comment les opcodes et les opérandes sont-ils définis dans une CPU?

Pourquoi séquence ne une 8-bit exactement de plus haut et de bas de effectuer cette action, et une séquence de 8 bits effectue que l'action.

Mon intuition me dit que les circuits de la CPU câblé une séquence binaire pour faire une chose, et une autre pour faire autre chose. Cela signifierait que différents processeurs avec des circuits de puce potentiellement différents ne définiraient pas une séquence binaire particulière comme la même action qu'une autre?

Est-ce la raison pour laquelle nous avons l'assemblage? J'ai besoin de quelqu'un pour confirmer et/ou corriger mon hypothèse!

Répondre

1

Les opcodes ne sont pas toujours 8 bits mais oui, il est codé en dur/câblé dans la logique pour isoler l'opcode et ensuite vous envoyer un plan d'action basé sur cela. Pensez à la façon dont vous le feriez dans un simulateur de jeu d'instructions, pourquoi la logique serait-elle différente? La logique est plus simple que les langages logiciels, il n'y a pas de magie là-bas. Un, zéro, et, ou, pas aussi compliqué que ça. Dans le même ordre d'idées, on m'a remis un document d'instructions et on m'a donné un document d'instructions et on m'a dit de créer un processeur ou d'écrire un simulateur de jeu d'instructions. Produirions-nous exactement le même code? Même si les noms de variables étaient différents? Non. Idéalement, nous aurions des programmes fonctionnellement identiques, ils analyseraient l'instruction et l'exécuteraient. Logique n'est pas différent, vous donnez la spécification à deux ingénieurs, vous pourriez avoir deux processeurs différents qui sont fonctionnellement identiques, on pourrait mieux fonctionner, etc. Regardez les familles de processeurs à long terme, en particulier, ils réinventent que chaque couple- trois ans étant jeu d'instruction compatible pour les instructions de legs tout en ajoutant parfois de nouvelles instructions. Idem pour ARM et autres. Et il existe différents jeux d'instructions ARM est différent de x86 est différent de MIPS, les opcodes et/ou les bits que vous examinez dans l'instruction varient, car aucun de ceux-ci ne peut simplement regarder 8 bits, chacun vous avez quelques bits alors, si cela ne suffit pas pour identifier l'instruction/l'opération de façon unique, alors vous devez examiner d'autres bits, où ces bits sont ce que les règles sont très spécifiques à chaque architecture. Sinon, quel serait le point d'avoir des noms différents pour eux s'ils étaient les mêmes. Et cette information était là, vous n'avez pas regardé dans les bons endroits, il existe d'innombrables cours en ligne ouverts sur le sujet, les livres sur lesquels google devrait aller sur certaines pages, ainsi que les cœurs de processeurs open source, vous pouvez regarder et d'innombrables simulateurs d'ensembles d'instructions avec code source.