2017-03-19 7 views
0

Je n'arrive pas à comprendre comment l'ordinateur exécute une opération binaire.Code d'instruction

Tout d'abord, une instruction est stockée dans l'unité de mémoire.

Ensuite, l'unité de commande dans la CPU prend cette instruction pour la stocker dans le registre d'instructions (IR) en elle-même.

Après cela, CU décode le code d'opération dans le code d'instruction en utilisant un décodeur d'instructions (ID).

On suppose que opcode = somme

Si c'est le cas, nous avons besoin de deux opérandes. Certains livres indiquent qu'il n'y a qu'une seule adresse d'opérande dans la partie adresse du code d'instruction.

Où est le deuxième opérande?

Où est l'adresse du deuxième opérande?

+0

Lorsque vous donnez la commande en assembleur, elle est convertie en code binaire et en hexadécimal et stockée dans les premiers registres du fichier registre via des bascules. Ensuite, il est lu et exécuté. Par exemple le code j L1 est une instruction et sera lue par la machine comme 6 L1/4 – dulindraxe

Répondre

0

La plupart du temps, le deuxième opérande est déjà stocké dans un registre de la CPU, l'ALU (Arithmetic Logical Unit).

La séquence d'instructions peut ressembler à ceci:

lda $1234  ' loads value from memory address $1234 into ALU 
add #20   ' adds value 20 to the value stored in ALU and stores the result in the ALU again 
sda $5678  ' stores the resulting value from the ALU in the memory at address $5678 

processeurs modernes ont beaucoup de registres, de sorte que la séquence d'instructions pour une unité centrale de traitement moderne peut ressembler à ceci:

load ax, $1234  ' loads value from memory address $1234 into AX 
load bx, [si+2]  ' load the value from the address stored in register SI+2 
add ax, bx   ' adds the value in register BX to the value in register AX and stores the result in AX 
store di+5, ax  ' stores the value of register in memory at address stored in DI+5 

Espérons que ce Clairs pour toi.