2011-06-09 4 views
4

Cette question est mendiant pour un tas de "pourquoi faites-vous cela?" réponses68k adresses de registre

Je n'ai pas été en mesure de trouver cette information dans le 68k Programmer's Reference Manual, mais c'est peut-être parce que je ne suis pas sûr de ce verbiage à rechercher.

Voici le format d'instruction pour l'opcode ADD de 68k.

enter image description here

Bits 0-2 et 9-11 registres désignent. Quelles sont les représentations binaires des registres du 68k? Sont-ils des "adresses"? Oui, je suis conscient que je peux écrire un programme d'assemblage 68k et le déboguer pour trouver cette information. Je cherche une référence. Merci!

+0

Les registres n'ont pas d'adresses. Si vous ne comprenez pas cela, vous ne comprenez pas les architectures machine. Les bits indiquent simplement quel registre dans la CPU doit être utilisé. Ils sont décodés mon moteur de microcode. –

+0

Je sais qu'ils ne sont pas des adresses de mémoire. Cela est évident. Ils pourraient encore avoir été/appelé/adresses. De plus, je n'ai pas prétendu comprendre les architectures de la machine. J'essaie d'apprendre; excusez-moi d'avoir posé une question. – mwcz

+0

@mwcz nous pourrions les appeler "zoinks", mais cela ne les rend pas zoinks. La terminologie est importante, et dans le cas de l'écriture et la compréhension des programmes de code machine, très important. –

Répondre

4

Voir la Sec. 2.1, "Format d'instruction":

Une instruction spécifie la fonction à exécuter avec un code d'opération et définit l'emplacement de chaque opérande. Les instructions spécifient un emplacement d'opérande par spécification de registre , le champ de registre d'instruction contient le numéro de registre; par adresse effective, le champ d'adresse effective de l'instruction contient des informations sur le mode d'adressage; ou par référence implicite, la définition de l'instruction implique l'utilisation de registres spécifiques. (c'est nous qui soulignons)

+0

Merci, ça aide. Je l'ai juste compris, et c'était si évident que ce n'était pas étonnant qu'il ne soit pas listé dans les docs. :) – mwcz

+1

@mwcz pour nous simples mortels suite à cette question est le numéro de registre une représentation binaire à 3 chiffres des huit registres D0-D7 ou A0-D7? – Caltor

+1

@Caltor Ouais, c'est. Lorsque j'ai posté cette question, j'étais confus sur la façon dont les seize registres (les registres A et D) pouvaient être référencés par un champ de 3 bits.Cela ressemble à une question idiote maintenant, car il est évident (rétrospectivement) que le nombre (0-7) est contenu dans le champ de registre, et le mode d'adressage détermine si ce nombre fait référence à un registre A ou D. – mwcz

2

Elles se réfèrent probablement aux registres An et Dn énumérés dans la figure 1-1, page 1-2 du manuel que vous avez lié.

1

Les 3 bits spécifient le numéro de registre d'adresse, de 0 (bits: 0-0-0) à 7 (bits: 1-1-1). Mais généralement, vous pouvez laisser l'assembleur s'inquiéter de ce genre de choses. J'espère que cela aide, Dave

+0

Merci. J'écrivais un émulateur à ce moment-là, donc compter sur un assembleur n'était pas une option. – mwcz