Instructions

 

Les instructions sont codées sur 14 bits

Elles sont stockées dans la mémoire programme (mémoire flash non volatile); les mnémoniques et leur utilisation est donnée ici

 

Instructions orientées octet:

Les 6 bits de poids fort contiennent le code de l'instruction (opcode)

Les 7 bits de poids faible contiennent l'adresse de la case mémoire vive (ce peut être un registre) contenant l'octet à traiter

Le bit 7 indique où sera placé le résultat de l'opération:

L'espace mémoire est divisé en pages (0, 1, 2 et 3) (Banks)

Avec le 16F84

La page adressée est déterminée par le bit 5 RP0 du registre STATUS

Il faut donc modifier la valeur de RP0 quand on passe de la page 0 à la page 1 et inversement

Au reset, RP0 est à 0

 

Instructions orientées octet
13 12 11 10 9 8 7 6 5 4 3 2 1 0
Opcode 0/1 Adresse du registre concerné

 

Instructions orientées bit:

 

Les 4bits de poids fort contiennent le code de l'instruction (opcode)

Les bits 7 8 et 9 déterminent le bit concerné par l'opération (bit 0 à bit 7)

Les 7 bits de poids faible contiennent l'adresse de la case mémoire vive (ce peut être un registre) contenant l'octet à traiter

L'espace mémoire est divisé en pages (0, 1, 2 et 3) (Banks)

Avec le 16F84

La page adressée est déterminée par le bit 5 RP0 du registre STATUS

Il faut donc modifier la valeur de RP0 quand on passe de la page 0 à la page 1 et inversement

Au reset, RP0 est à 0

 

Instructions orientées bit
13 12 11 10 9 8 7 6 5 4 3 2 1 0
Opcode Bit concerné Adresse du registre concerné

 

Bit 9 Bit 8 Bit 7 Bit concerné
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

 

Instructions littérales et de contrôle:

 

Les 6 bits de poids fort contiennent le code de l'instruction (opcode)

 

Les 8 bits de poids faible contiennent la valeur numérique ou littérale qui sera utilisée par l'instruction

 

Instructions littérales et de contrôle
13 12 11 10 9 8 7 6 5 4 3 2 1 0
Opcode Valeur utilisée

 

Instructions CALL et GOTO:

 

Les 3 bits de poids fort contiennent le code de l'instruction (opcode)

Les 11 bits de poids faible déterminent la destination, en fait seuls les 10 bits de poids faible suffisent pour adresser les 1k du 16F84; le bit 10 de poids fort doit donc rester à 0

Instructions CALL et GOTO
13 12 11 10 9 8 7 6 5 4 3 2 1 0
Opcode Adresse de destination

Les instructions s'exécutent en un seul cycle sauf celles qui entraînent un saut et qui nécessitent deux cycles

Un cycle correspond à 4 périodes d'horloge: avec un quartz 4 MHz, un cycle dure donc 1 us

 

Retour au sommaire

© 1999-2009 A. Ducros F5AD