Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Conjunto de Instruções
Introdução
A CPU do microcontrolador MSP430 tem um conjunto de instruções reduzido (RISC).
São apenas 27 instruções executadas pelo hardware, contudo o gerador de constante auxilia
ao programa montador (assembly) do MSP emular mais 24 instruções. A seção seguinte
descreve todas as instruções do núcleo do MSP e instruções emuladas de forma detalhada.
As instruções aparecerão em ordem alfabética.
O sufixo .W ou a ausência de sufixo no mnemônico da instrução indica operação de 16
bits ou operação de word e o sufixo .B indica operação de 8 bits ou operação de byte.
As letras src e dst significam operando fonte e operando destino respectivamente.
O asterisco (*) na frente da instrução indica que a mesma é emulada.
LSB (Least Significant byte)/MSB (Most Significant byte).
Nas instruções emuladas, os bits de status são afetados conforme a instrução original.
R5 R4 0X0001 0X8000
R7 R6 0X0000 0X8000
R9 R8 0X0002 0X0000
O vai um relativo a soma de R4 com R6 será armazenado no carry e
deverá ser somado a parte mais significativa do resultado (R9), neste
caso aplica-se a instrução ADC.
CLR R9 ;zera a parte mais significativa
MOV R4,R8 ;Soma a parte menos significativa
CLRC ;Reseta flag de carry
ADD R6,R8
ADC R9 ;Soma o carry
ADD R5,R9 ;Soma a parte mais significativa
ADD R7,R9
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 1
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 2
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 4
Sintaxe BR dst
Operação dst PC
Exemplos
BR EXEC ;salta para o endereço contido em EXEC
BR &EXEC ;salta p/ o endereço contido no endereço
;absoluto EXEC
BR R5 ;salta para o endereço contido em R5.
BR @R5 ;salta p/ o endereço contido na word
;apontada por R5.
BR @R5+ ;Idem anterior e incrementa R5 após.
BR X(R5) ;salta p/ o endereço contido no endereço
;apontado por R5 + X.
Operação SP - 2 SP
PC @SP
dst PC
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 5
Exemplos
CALL EXEC ;chama o endereço contido em
;EXEC.
CALL &EXEC ;chama o endereço contido no
;endereço absoluto EXEC.
CALL R5 ;chama o endereço contido em R5.
CALL @R5 ;chama o endereço contido na word
;apontada por R5.
CALL @R5+ ;idem anterior com pós incremento.
CALL X(R5) ;chama o endereço contido no
;endereço apontado por R5 + X.
Operação 0 dst
Sintaxe CLRC
Operação 0 C
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 6
Sintaxe CLRN
Operação 0 N
Exemplo CLRN
Sintaxe CLRZ
Operação 0 Z
Exemplo CLRZ
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 7
Exemplo3 Dois blocos de RAM são comparados. Se não são iguais, vai para o
rotulo ERRO.
ORG 0200h
BLOCO1 DB 00,01,02
ORG 0210h
BLOCO2 DB 00,01,02
ERRO
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 8
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 9
Descrição O operando fonte e destino são tratados como números BCD positivos.
O operando fonte e o carry bit são somados BCD ao operando destino.
O operando fonte não é afetado. O conteúdo prévio do destino é
substituído pelo resultado da operação. O resultado é indefinido para
números não BCD.
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 10
Sintaxe DINT
Operação 0 GIE
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 11
Sintaxe EINT
Operação 1 GIE
Exemplo O byte STATUS é incrementado. Se ele for igual a 11, vai para o
endereço OVFL.
INC.B STATUS
CMP.B #11, STATUS
JEQ OVFL
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 12
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 13
Operação Se C = 1: PC + 2 x offset PC
Se C = 0: executa a instrução seguinte
Exemplo R5 é comparado com 15. Se for maior ou igual desvia para o endereço
SALTA.
CMP #15, R5
JHS SALTA ;salta se R5 >= 15
... ;continua se R5 < 15
Operação Se Z = 1: PC + 2 x offset PC
Se Z = 0: executa a instrução seguinte
Sintaxe JL rótulo
Operação PC + 2 x offset PC
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 15
Sintaxe JN rótulo
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 16
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 17
Sintaxe NOP
Operação Nenhuma
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 18
Operação SP – 2 SP
Src @SP
Sintaxe RET
Operação @SP PC
SP + 2 PC
Sintaxe RETI
Operação @SP SR
SP + 2 SP
@SP PC
SP + 2 SP
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 19
Nota O assembler não reconhece a instrução RLA @R5+, que deve ser
substituída por ADD @R5+, -2(R5).
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 20
Nota O assembler não reconhece a instrução RLC @R5+, que deve ser
substituída por ADDC @R5+, -2(R5)
R5 R4 0X0002 0X0005
R7 R6 0X0001 0X0006
R5 R4 0X0000 0XFFFF
MOV #5,R4 ;Carrega 0X0205 em OP1
MOV #2,R5
MOV #6,R6 ;Carrega 0X0106 em OP2
MOV #1,R7
SUB R6,R4 ;Subtrai LSB
SBC R5 ;Ajusta a existência de borrow
SUB R7,R5 ;Subtrai MSB
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 22
Sintaxe SETC
Operação 1 C
Sintaxe SETN
Operação 1 N
Sintaxe SETZ
Operação 1 Z
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 23
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 24
R5 R4 0X0002 0X0005
R7 R6 0X0001 0X0006
R5 R4 0X0000 0XFFFF
MOV #5,R4 ;Carrega 0X0205 em OP1
MOV #2,R5
MOV #6,R6 ;Carrega 0X0106 em OP2
MOV #1,R7
SUB R6,R4 ;Subtrai LSB
SUBC R7,R5 ;Subtrai com borrow MSB
Descrição Os bytes alto e baixo do operando destino são trocados como mostra a
Figura B.5.
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 25
Descrição O sinal do byte baixo é estendido para o byte alto como mostrado na
Figura B.6.
jkssbh@deii.cefetmg.br marcosp@deii.cefetmg.br 27