2016-09-01 1 views
0

implicite: les opérandes sont spécifiés implicitement dans la définition de l'instruction. Exemple: CLA, CME, INP. Il est principalement utilisé pour les instructions Zero-address (STACK-organisé) et One-address (ACCUMULATOR-organisé).Différence entre le mode d'adressage implicite et le mode d'adressage immédiat?

immédiat: l'opérande est spécifié dans l'instruction elle-même et principalement pour les constantes. Exemple: ADD R1,#3, MUL R1,R2,#7

mais la question est comment vérifier l'instruction: 1) PUSH 3 et

2) LD 7

La première est une instruction d'adresse zéro (Stack base) et le second est une instruction d'accumulateur dans les deux instructions, l'opérande est défini dans l'instruction elle-même. Quel mode d'adressage est préféré?

Comment vérifier si l'instruction est implicite ou immédiate?

Merci

+0

* Comment vérifier si l'instruction est implicite ou immédiate? * Cela n'a pas vraiment de sens. Vous devez regarder chaque opérande séparément, pas toute l'instruction. par exemple. PUSH stocke implicitement dans la pile, mais son opérande explicite peut être un registre, ou immédiat. Sur certaines architectures, comme x86, PUSH peut même accepter un opérande de mémoire. ['PUSH r/m32'] (http://www.felixcloutier.com/x86/PUSH.html) est un opcode, et le mode d'adressage sélectionne entre la source de mémoire ou de registre. –

+0

@Peter si l'instruction est 'PUSH A' l'opérande est en mémoire alors est-ce un mode implicite car l'opérande n'est pas le OPERAND ACTUEL? –

+1

On ne sait pas pourquoi c'est important. Utilisez simplement l'instruction. –

Répondre

1

Une instruction comme PUSH a deux opérandes: la destination implicite et explicite la source.

Implicit, register, explicit-memory ou immediate est une propriété d'un opérande, pas l'instruction entière. C'est pourquoi votre question ne semble pas logique.

Une instruction où tous les opérandes sont de la même catégorie pourrait être dite utiliser des opérandes implicites, par exemple. par exemple. Le movsd instruction de x86 a deux opérandes, et les deux sont implicites.

Le inc instruction de x86 a un seul opérande, qui peut être un registre ou une mémoire.

2

Implicite: Non spécifié directement. L'adresse des opérandes n'est pas explicitement spécifiée.

Prendre l'adresse zéro de l'organisation de la pile pour un exemple. ne sont pas spécifiés directement

ADD

Ici opérandes. Les deux éléments supérieurs de la pile sont sautés puis ajoutés. Notez que les opérandes ne sont pas directement présents dans l'instruction. IMMEDIATE

Immediate: Ceci est assez simple, les opérandes sont directement présents dans le champ d'adresse. Le champ d'adresse ressemble plus à un champ d'opérande.