prérequis
naken_asm
mspdebug sim ( en simulation)
but
découvrir le langage assembleur et tester le code dans le simulateur msp430
On va découvrir ce qu'est le langage assembleur:
les directives d'assemblage (qui commencent par un '.') , on parle à l'outil logiciel assembleur , ici naken_asm
et les Mnémoniques pour parler a notre microprocesseur ici le msp430 , ainsi que les étiquettes (label)
et des commentaires précédés d'un ';'
l'origine est mise dans la zone mémoire EEROM (zone de programme), ici le début 0xC000
.msp430 ; on a la cible sur lequel le programme va fonctionner
; ca commence par un point '.' directive d'assemblage
.org 0xC000 ; directive d'assemblage pour placer une origine a notre code
debut: mov.b #0x10,R4 ; charge la valeur 0x10 dans R4 sur un octet (.b)
mov.b #0x20,R5 ; charge la valeur 0x20 dans R5 sur un octet (.b)
add.b R4,R5 ; addition R4+R5 => R5
mov.b R5,0x200 ; resultat de l'addition dans la memoire en (0x200)
nop ; consomme 2 cycles machine ,'perte de temps' ne fait rien d'autre
nop
jmp debut
.end
Exercice 1
faire en plus de l'exercice précédent
0x30 - 0x10 dans (0x201)
.msp430 ; on a la cible sur lequel le programme va fonctionner
; ca commence par un point '.' directive d'assemblage
.org 0xF800 ; directive d'assemblage pour placer une origine a notre cod
e
debut: mov.b #0x10,R4
mov.b #0x20,R5
add.b R4,R5
mov.b R5,0x200 ; resultat dans la memoire en 0x200
;soustraction 0x30 - 0x10
mov.b #0x30,R6
mov.b #0x10,R7
sub.b R7,R6
mov.b R6,0x201 ; on sauve le resultat dans 0x201
jmp debut
.end