Il n'y a que 27 instructions.
Et Il y a des instructions émulées. Qui sont simplement obtenues avec les 27 instructions.
au totale 51 instructions voir ci dessous.
Lien vers explications mnémoniques.
http://mspgcc.sourceforge.net/manual/x223.html
autre wiki-msp430
51 mnémoniques , mais 27 réelles , 24 instructions émulées.
Instructions d'assemblage du msp430 (les instructions en bleues n'existent pas vraiment , elles sont émulées.)
Pour travailler sur des mots de 16 bits (.W) Word
Pour travailler sur des mots de 8 bits (.B) Byte
exemple :
inc.w R9 ; va incrementer R9 sur 16 bits
alors que :
inc.b R9 ; va incrementer R9 sur 8 bits
Légende:
- : inchangé
x : affecté
0 : forcé à zéro
1 : forcé à un
Les instructions sur un cycle d'horloge en rouge.
Explication avec RRC par exemple :
RRC : Rotate Rigth through Carry
Rotation à droite sur 9bits pour un .b (byte) ou 17 pour un .w incluant la carry.
C -> msb -> ... .... -> lsb -> C (C étant la carry)
La rotation à droite permet de diviser par 2 .
rrc.w r9
0x001c: 0x1009 rrc.w r9 cycles: 1
explication avec le registre r9
rrc.w R9
rotation à droite avec carry sur les 16 bits de R9.
MSB LSB
R9 B15 ... ... B0 CARRY
0 ---> | | | | --> | |
Pseudo instructions ou instructions émulées.
.msp430
.org 0xC000
debut: br debut
0xc000: 0x4010 mov.w 0xc000, PC cycles: 3
0xc002: 0xfffe
On voit dans cette exemple que l'instruction br (branch) n'existe pas , mais l'assembleur va réaliser avec les 27 instructions du msp430 cette instruction. Ici avec un mov du PC