assembly msp430 v00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/te124/msp430/assembly_msp430.pdf ·...

73
TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas Instruments Microcontrolador MSP430G2xxx: Arquitetura von-Neumann com barramento de dados e barramento de endereços: MDB - Memory Data Bus MAB - Memory Address Bus CPU de 16 bits com arquitetura RISC Sistema de Clock flexível – Aplicações de baixo consumo

Upload: nguyenxuyen

Post on 30-Nov-2018

292 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Microcontrolador da Texas Instruments

Microcontrolador MSP430G2xxx:

Arquitetura von-Neumanncom barramento de dados e barramento de endereços:

• MDB - Memory Data Bus• MAB - Memory Address Bus

CPU de 16 bits com arquitetura RISC

Sistema de Clock flexível – Aplicações de baixo consumo

Page 2: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Arquitetura do MSP430G2xxx

Page 3: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Arquitetura do MSP430G2x53

Encapsulamentode 28 Pinos

Page 4: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Page 5: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Mapeamento de Memória (Address Space) do MSP430

512 bytes03FFh

0C000h

MSP430G2553Information Memory256 bytes

Page 6: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Direçãodo Pino

Pull-upPull-down

Saída

Entrada

Funçãodo Pino

Page 7: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador de Direção dos pinos: PxDIR

Cada bit dos registradoresPxDIR (P1DIR ou P2DIR) define a direção do pino correspondente da Porta de Entrada/Saída

• Bit = 0, o pino é configurado como entrada

• Bit = 1, o pino é configurado como saída

Exemplo:

10010010P1DIR

P1.7, P1.5, P1.4, P1.2 e P1.1: Entrada

P1.6, P1.3 e P1.0 : Saída

01234567

Page 8: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador para habilitar Pull-up/Pull-down: PxREN

Cada bit dos registradoresPxREN (P1RENou P2REN) habilita ou desabilita o resistor de pull-up/pull-down no pinocorrespondente da Porta de Entrada/Saída

• Bit = 0, resistor de pull-up/pull-down habilitado

• Bit = 1, resistor de pull-up/pull-down desabilitado

Exemplo:

00010000P2REN

Resistor de pull-up/pull-down do pinoP2.3habilitado

01234567

Page 9: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Page 10: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador de entrada: PxIN

Cada bit dos registradoresPxIN reflete o estado do pinocorrespondente da Porta de Entrada/Saída, quando o mesmofor configurado como entrada.

• Bit = 0, o pino está no nível baixo

• Bit = 1, o pino está no nível alto

Page 11: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador de saída: PxOUT

Cada bit dos registradoresPxOUT define o valor a ser colocado no pino correspondente da Porta de Entrada/Saída, quando o mesmo for configurado como saída e o resistor de pull-up / pull-down estiver desabilitado.

• Bit = 0, o pino é colocado no nível baixo

• Bit = 1, o pino é colocado no nível alto

Se o resistor de pull-up / pull-downestiver habilitado cada bit do registrador PxOUT seleciona se o resistor é colocado empull-up ou pull-down.

• Bit = 0, coloca o resistor empull-down

• Bit = 1, coloca o resistor empull-up

Page 12: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Watchdog Timer- WDT

• O Watchdog timer+ counter(WDTCNT ) é um contador de 16 bits que não é acessível diretamente através de software.

• O WDTCNT é controlado através do registradorWDTCTL .

• A fonte de clock para o WDTCNT pode ser o ACLK ou o SMCLK, selecionável através do bit WDTSSEL.

• Após a condição de Reset, o móduloWDT é automaticamenteconfigurado no modoWatchdog, com clock de 32768Hz.

• O usuário deve alterar o registradorWDTCTL para desabilitar, configurar ou zerar o WDT para evitar um novo resetno sistema.

Page 13: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Watchdog Timer- WDT

Registrador WDTCTL

Page 14: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

CPU do MSP430:

Page 15: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador R0: Program Counter(PC)

O Program Counter(PC) é o ponteiro para a próxima instruçãoa ser executada.

Cada instrução do MSP430 utiliza um número par de bytes (2, 4 ou 6 bytes), e o PC é incrementado de acordo com o número de bytes da instrução.

O alinhamento das instruções é feito emwords, assimo Program Counter(PC) é alinhado emendereços pares.

Page 16: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador R1: Stack Pointer(SP)

O Stack Pointer(SP) é utilizado pela CPU para armazenar o endereço de retorno de uma sub-rotina ou de uma interrupção.

O Stack Pointeré pré-decrementado e pós-incrementado:Armazenar um endereço na pilha: o SPé inicialmente decrementado e

após o endereço é colocado na pilha.

Retirar um endereço da pilha: o endereço é retirado da pilha e o SPé incrementado.

O Stack Pointerpode ser utilizado como operando emqualquerinstrução.

O Stack Pointerdeve ser inicializado pelo usuário, emum en-dereço daRAM (normalmente o endereço mais alto daRAM).

Page 17: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registrador R2: Registrador de Estado(Status Register-SR)

Page 18: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Registradores de Propósito Geral: R4a R15

Os 12 Registradores, R4a R15, são de Propósito Geral. Todos elespodemser utilizados como registradores de dados, como ponteirosde endereços ou indexadores, podendo ser acessados através de instruções do tipowordou byte.

Transferência Registrador-Byte Transferência Byte-Registrador

Page 19: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Resete inicialização do microcontrolador

O Power On Reset(POR) é gerado por um dos seguintes eventos:

•Energização do dispositivo;

•Nível baixo no sinal RST/NMI, quando configurado comoRESET;

•Uma condição de nível baixo no SVS.

Page 20: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Condições iniciais após o Power On Reset

Após o Power On Resetas condições iniciais do MSP430 são:

• O pino RST/NMI é configurado no modoRESET;

• Os pinos de I/O são configurados como entrada;

• Os periféricos e registradores são configurados no mododefault;

• O Registrador de Estado(SR) é resetado;

• O Watchdog Timer é ativado no modoWatchdog

• O PCé carregado com o valor armazenado no endereço0xFFFE(Vetor de reset)

Page 21: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Após o Reseto usuário deve inicializar o MSP430 de acordocom os requisitos da aplicação:

• Inicializar o Stack Pointer(SP), usualmente no final daRAM;

• Configurar ou desativar o Watchdog;

• Configurar os periféricos de acordo com os requisitos da aplicação;

• Configurar as portas de I/O

Page 22: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

#include "msp430g2553.h" org 0xfffebc16 main rseg code main: mov.w #0x03FF,SP mov.w #WDTPW+WDTHOLD,&WDTCTL bis.b #00000001b,&P1DIR bic.b #00000001b,&P1OUT loop: xor.b #0x01,&P1OUT mov.w #50000,R15 delay: dec.w R15 jnz delay jmp loop END

Anatomia de uma listagemde programa assembly

Page 23: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

/*-------------------------------------------------------------------------------------------------Programa para inverter o estado do LED vermelho da placaMSP-EXP430G2 com delay entre as mudanças de estado do led.

-------------------------------------------------------------------------------------------------*/#include "msp430.h" // Definicões do MSP430

org 0xFFFEbc16 main

RSEG CODE

main: mov.w #0x0400,SP ; Inicializar stack pointer

mov.w #WDTPW+WDTHOLD,&WDTCTL ; Desativar WDTbis.b #00000001b,&P1DIR ; Pino P1.0 como saídabic.b #00000001b,&P1OUT ; Pino P1.0 = 0

loop: xor.b #0x01,&P1OUT ; Inverter o pino P1.0mov.w #50000,R15 ; Carregar registrador R15

delay: dec.w R15 ; Decrementar R15jnz delay ; Desvia para delay se R15 # 0jmp loop ; Desvia para loop

END

ComentárioComentáriosDiretivado Assembly

ComentáriosLabel(Rótulo)

Anatomia de uma listagemde programa assembly

Mnemônicoda Instruçãode Máquina

Operandos

Page 24: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Conjunto de Instruções do MSP430

O MSP430 possui um Conjunto de Instruções contendo 27 instruções nativas e 24 instruções emuladas.

Cada uma das 27 instruções nativas possui um Código de Operação que podeser decodificado pela CPU.

As instruções emuladas são instruções que facilitam a codificação e a leitura do programa, porém não possuem um Código de Operação específico. Essas ins-truções são automaticamente substituidas pelo montador (Assembler), por ins-truções nativas equivalentes.

O Conjunto de Instruções nativas do MSP430 está dividido em 3 grupos:

Instruções com dois operandosInstruções com um operando

Instruções de desvio

Page 25: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Conjunto de Instruçõesnativas do MSP430

Instruções com 2 operandos:

Mnemônico Operandos Operação

MOV[.W/.B] src,dst src→ dst

ADD[.W/.B] src,dst src + dst→ dst

ADDC[.W/.B] src,dst src + dst + C → dst

SUB[.W/.B] src,dst dst – src→ dst

SUBC[.W/.B] src,dst dst – src – C → dst

CMP[.W/.B] src,dst dst – src

DADD[.W/.B] src,dst src + dst + C → dst (decimal)

BIT[.W/.B] src,dst src .and. dst

BIC[.W/.B] src,dst zerar bits em dst

BIS[.W/.B] src,dst setar bits em dst

XOR[.W/.B] src,dst src .xor. dst→ dst

AND[.W/.B] src,dst src .and. dst→ dst

Page 26: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Instruções com 1 operando:

Mnemônico Operando Operação

RRC[.W/.B] dst rotacionar dst com o Carry

RRA[.W/.B] dst rotacionar dst sem o Carry

PUSH[.W/.B] src colocar src na pilha

SWPB dst trocar bytes de dst

CALL dst chamada a sub-rotina

RETI retorno de interrupção

SXT dst propagar bit de sinal

Conjunto de Instruçõesnativas do MSP430

Page 27: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Instruções de desvio:

Mnemônico Operando Operação

JEQ/JZ label desvia para label se Z = 1

JNE/JNZ label desvia para label se Z = 0

JC label desvia para label se C = 1

JNC label desvia para label se C = 0

JN label desvia para label se N = 1

JGE label desvia para label se (N .xor. V) = 0

JL label desvia para label se (N .xor. V) = 1

JMP label desvia incondicionalmente para label

Conjunto de Instruçõesnativas do MSP430

Page 28: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Modos de Endereçamento

O MSP430 possui 7 modos de endereçamento para o operando de origem e 4 modos de endereçamento para o operando de destino.

Modos de Endereçamento:

� Registrador

� Indexado

� Simbólico

� Absoluto

� Indireto

� Indireto com auto-incremento

� Imediato

Operando de Origeme de Destino

Operando de Origem

Código da operação Operando de Origem Operando de Destino

Page 29: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Modo de Endereçamentoa Registrador

MOV.W R10, R11

Operação: mover o conteúdo do RegistradorR10para o RegistradorR11

0x1234R10:

0x80A5R11:

Antes

MOV.B R10, R11

0x1234R10:

0x80A5R11:

Antes

0x1234R10:

0x1234R11:

Depois

0x1234R10:

0x0034R11:

Depois

Page 30: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

0xC01AR10:

0x0200R11:

Modo de Endereçamento Indexado

MOV.W 6(R10), 10(R11)

Operação: mover o conteúdo do endereço de memória“6 + (R10)” para o endereço de memória“10 + (R11)”

Antes

0x4567C0200x1B0AC01E0xxxxxC01C0xxxxxC01A

. . .C0220xA002C021

. . .. . .

. . .. . .

0x013502060x123402040xxxxx02020xxxxx0200

0x1BC00208

. . .. . .

0x025C020A

Depois

0x4567C0200x1B0AC01E0xxxxxC01C0xxxxxC01A

. . .C0220xA002C021

. . .. . .

. . .. . .

0x013502060x123402040xxxxx02020xxxxx0200

0x1BC00208

. . .. . .

0x4567020A

+6

+10

6(R10)

10(R11)

Page 31: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Modo de Endereçamento Simbólico

MOV.W origem, destino

Operação: mover o conteúdo do endereço simbólico de memóriaorigempara o endereço simbólico de memóriadestino.

Antes

0x456702060x123402040xxxxx02020xxxxx0200

0x1BC002080x025C020A

0xFFC702120x020102100xxxxx020E0xxxxx020C

0x1B5002140x15060216

. . .. . .

origem

destino

Depois

0x456702060x123402040xxxxx02020xxxxx0200

0x1BC002080x025C020A

0xFFC702120x456702100xxxxx020E0xxxxx020C

0x1B5002140x15060216

. . .. . .

Page 32: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Modo de Endereçamento Absoluto

MOV.W & 0x0206, &0x0210

Operação: mover o conteúdo do endereço de memória0x0206(origem) para o endereço de memória0x0210(destino).

Antes

0x456702060x123402040xxxxx02020xxxxx0200

0x1BC002080x025C020A

0xFFC702120x020102100xxxxx020E0xxxxx020C

0x1B5002140x15060216

. . .. . .

origem

destino

Depois

0x456702060x123402040xxxxx02020xxxxx0200

0x1BC002080x025C020A

0xFFC702120x456702100xxxxx020E0xxxxx020C

0x1B5002140x15060216

. . .. . .

Page 33: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

0xC01ER10:

0x0208R11:

Modo de Endereçamento Indireto

MOV.W @R10, 0(R11)

Operação: mover o conteúdo do endereço de memória apontado peloregistrador R10, para o endereço de memória “0 + (R11)”

Antes

0x4567C0200x1234C01E0x0C05C01C0xxxxxC01A

. . .C0240xA002C022

. . .. . .

. . .. . .

0x300102060x015A02040xxxxx02020xxxxx0200

0x1BC00208

. . .. . .

0x025C020A

Depois

0x4567C0200x1234C01E0x0C05C01C0xxxxxC01A

. . .C0240xA002C022

. . .. . .

. . .. . .

0x300102060x015A02040xxxxx02020xxxxx0200

0x12340208

. . .. . .

0x025C020A

0xC01ER10:

0x0208R11:

Page 34: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

0xC01ER10:

0x0208R11:

Modo de Endereçamento Indireto com auto-incrementoMOV.W @R10+, 0(R11)

Operação: mover o conteúdo do endereço de memória apontado pelo registrador R10, para o endereço de memória “0 + (R11)”.

Após a operação, o registradorR10é acrescido de 1 ou 2 conforme a operaçãoseja tipo .B/.W

Antes

0x4567C0200x1234C01E0x0C05C01C0xxxxxC01A

. . .C0240xA002C022

. . .. . .

. . .. . .

0x300102060x015A02040xxxxx02020xxxxx0200

0x1BC00208

. . .. . .

0x025C020A

Depois

0x4567C0200x1234C01E0x0C05C01C0xxxxxC01A

. . .C0240xA002C022

. . .. . .

. . .. . .

0x300102060x015A02040xxxxx02020xxxxx0200

0x12340208

. . .. . .

0x025C020A

0xC020R10:

0x0208R11:

Page 35: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Modo de Endereçamento Imediato

MOV.W #0x6789, &0x0210

Operação: mover o valor 0x6789para o endereço de memória0x0210.

Antes

0x456702060x123402040xxxxx02020xxxxx0200

0x1BC002080x025C020A

0xFFC702120x020102100xxxxx020E0xxxxx020C

0x1B5002140x15060216

. . .. . .

Depois

0x456702060x123402040xxxxx02020xxxxx0200

0x1BC002080x025C020A

0xFFC702120x678902100xxxxx020E0xxxxx020C

0x1B5002140x15060216

. . .. . .

Page 36: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Instruções nativas do MSP430

MOV[.W/.B] src, dst (move source to destination)

Operação: src → dst

Descrição: o operando de origem é movido para o operando de destino. O operando de origem não é modificado.

Bits do Registrador de Estado afetados:nenhum

Exemplo: MOV.B #0x47, &P2OUT

MOV .B &P1IN, R12

MOV .W @R7, 0(R15)

Page 37: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JMP label (Jump unconditionally)

Operação: desvia para label

Descrição: é executado um desvio incondicional para o endereço(label) especificado.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JMP label

Instruções nativas do MSP430

Page 38: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

ADD[.W/.B] src, dst (Add source to destination)

Operação: src+ dst→ dst

Descrição: o operando de origem é somado ao operando de destino e o resultadofica armazenado no operando de destino. O operando de origem nãoé modificado.

Bits do Registrador de Estado afetados:N = 1 se o resultado for negativoN = 0 se o resultado for positivoZ = 1 se o resultado for zeroZ = 0 se o resultado for diferente de zeroC = 1 se houve a ocorrência de carry na operaçãoC = 0 se não houve a ocorrência de carry na operaçãoV = 1 se ocorreu um estouro(overflow)V = 0 se não ocorreu estouro

Exemplo: ADD.W #1234, R6

ADD.W R6, R13

ADD.W R13, soma

Instruções nativas do MSP430

Page 39: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

ADDC[.W/.B] src, dst (Add source and carry to destination)

Operação: src+ dst+ C→ dst

Descrição: o operando de origem mais o bit de Carry são somados ao operandode destino e o resultado fica armazenado no operando de destino. O ope-rando de origem não é modificado.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: ADDC.B #45, R6

ADDC.W R5, R10

ADDC.W @R7, soma

Instruções nativas do MSP430

Page 40: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

DADD[.W/.B] src, dst (Source and carry added decimally to destination)

Operação: src + dst + C → dest

Descrição: o operando de origem mais o bit de Carry são somados ao operandode destino e o resultado fica armazenado no operando de destino. A opera-ção é feita em BCD. O operando de origem não é modificado.

Bits do Registrador de Estado afetados:N, Z, C

Exemplo: DADD.W #0x1234, R5

DADD.W @R10, 20(R8)

DADD.B #0x08, R7

Instruções nativas do MSP430

Page 41: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

BIC[.W/.B] src, dst (Clear bits in destination)

Operação: .NOT.src .AND. dst→ dst

Descrição: é realizada uma operação lógicaAND entre o complemento do operan-do de origem e o operando de destino e o resultado ficaarmazenadono operando de destino. O operando de origem não é modificado.

Bits do Registrador de Estado afetados:nenhum

Exemplo: BIC.W #0x040F, R5

BIC .W R8, 20(R12)

BIC .B @R7, &P1OUT

Instruções nativas do MSP430

Page 42: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Instruções nativas do MSP430AND[.W/.B] src, dst (source AND destination)

Operação: src .AND. dst→ dst

Descrição: é realizada uma operação lógicaAND entre os operandos e o resultadofica armazenado no operando de destino. O operando de origem não émodificado.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: AND.B #5A, R5

AND.W R8, 20(R12)

AND.B @R7, &P1OUT

Page 43: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

BIS[.W/.B] src, dst (Set bits in destination)

Operação: src .OR.dst→ dst

Descrição: é realizada uma operação lógicaORentre o operando de origem e o operando de destino e o resultado fica armazenado no operando de destino. O operando de origem não é modificado.

Bits do Registrador de Estado afetados:nenhum

Exemplo: BIS.W #0x0F15, R5

BIS.W R10, 40(R15)

BIS.B #0x20, &P1OUT

Instruções nativas do MSP430

Page 44: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

BIT[.W/.B] src, dst (Test bits in destination)

Operação: src .AND. dst

Descrição: é realizada uma operação lógicaAND entre o operando de origeme o operando de destino. O resultado afeta somente osflagsdo Registradorde Estado. Nenhum dos operandos é modificado.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: BIT.W #0x0F00, R5

BIT .W @R10, 10(R15)

BIT.B #0x08, &P1IN

Instruções nativas do MSP430

Page 45: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

CALL dst (Call subroutine)

Operação: dst→ tmpSP– 2 → SPPC → @SPtmp→ PC

Descrição: uma chamada a sub-rotina pode ser feita para qualquer endereço dentrodos 64kB do address space. Qualquer modo de endereçamento podeser utilizado.

Bits do Registrador de Estado afetados:nenhum

Exemplo: CALL # calcular

CALL @R10

CALL 40(R5)

Empilha o endereço de retorno

Coloca no PC o endereço de desvio

Instruções nativas do MSP430

Page 46: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

CMP[.W/.B] src, dst (Compare source and destination)

Operação: dst – src

Descrição: o operando de origem é subtraído do operando de destino. O resultadoafeta somente osflagsdo Registrador de Estado. Nenhum dos operan-dos é modificado.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: CMP.W #0x1234, R5

CMP.W @R10, 10(R15)

CMP.B #0x08, &P1IN

Instruções nativas do MSP430

Page 47: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JC label (Jump if carry set)JHS label (Jump if higher or same)

Operação: desvia se Carry = 1

Descrição: o estado do bit de Carry verificado. Se C = 1, desvia para o endereço(label) especificado. Se C = 0, a instrução seguinte aoJC é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JC label

JHS label

Instruções nativas do MSP430

Page 48: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JEQ labelJZ label

Operação: desvia se Z = 1

Descrição: o estado do bit de Zero(Z) éverificado. Se Z = 1, desvia para o endereço(label) especificado. Se Z = 0, a instrução seguinte é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JEQ label

JZ label

Instruções nativas do MSP430

Page 49: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JGE label (Jump if greater or equal)

Operação: desvia se (N .XOR.V) = 0

Descrição: os estados dos bits N e V são verificados. Se os dois bits forem iguais, ocorre o desvio para o endereço (label) especificado. Se os dois bits forem diferentes, a instrução seguinte é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JGE label

Instruções nativas do MSP430

Page 50: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JL label (Jump if less)

Operação: desvia se (N .XOR.V) = 1

Descrição: os estados dos bits N e V são verificados. Se os dois bits forem diferentes, ocorre o desvio para o endereço (label) especificado. Se os dois bits foremiguais, a instrução seguinte é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JL label

Instruções nativas do MSP430

Page 51: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JN label (Jump if negative)

Operação: se N = 1, desvia para label

Descrição: se o bit N do Registrador de Estado estiver setado, é realizado um desviopara o endereço(label) especificado. Se o bit N estiver zerado, a instruçãoseguinte é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JN label

Instruções nativas do MSP430

Page 52: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JNC label (Jump if carry not set)JLO label (Jump if lower)

Operação: se C = 0, desvia para label

Descrição: se o bit C do Registrador de Estado estiver zerado, é realizado um desviopara o endereço(label) especificado. Se o bit C estiver setado, a instruçãoseguinte é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JNC label

JLO label

Instruções nativas do MSP430

Page 53: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

JNE label (Jump if not equal)JNZ label (Jump if not zero)

Operação: se Z = 0, desvia para label

Descrição: se o bit Z do Registrador de Estado estiver zerado, é realizado um desviopara o endereço(label) especificado. Se o bit Z estiver setado, a instruçãoseguinte é executada.

Bits do Registrador de Estado afetados:nenhum

Exemplo: JNE label

JNZ label

Instruções nativas do MSP430

Page 54: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

PUSH[.W/.B] src (Push word/byte onto stack)

Operação: src

Descrição: o Stack Pointer(SP) é decrementado por 2 e, após isso, o operando émovido para o endereço de memória RAM apontado peloSP(TOS –Topo da Pilha)

Bits do Registrador de Estado afetados:nenhum

Exemplo: PUSH.B #0x55

PUSH.B @R8

PUSH.W 30(R15)

Instruções nativas do MSP430

Page 55: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

RETI (Return from Interrupt)

Operação: TOS → SRSP+ 2 → SPTOS → PCSP + 2 → SP

Descrição: o Registrador de Estado(SR) que foi colocado na pilha no início da inter-rupção é restaurado e o Stack Pointeré incrementado por 2. O endereçode retorno é colocado no PCe o Stack Pointeré incrementado por 2.

Bits do Registrador de Estado afetados:O Registrador de Estado é restaurado, com o valor do início dainterrupção

Exemplo: RETI

Instruções nativas do MSP430

Page 56: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

RRA[.W/.B] dst (Rotate right arithmetically)

Operação: MSB→MSB, MSB →MSB-1, ... LSB+1 → LSB, LSB →C

Descrição: o operando de destino é deslocado um bit para a direita. O bit mais sig-nificativo(MSB) é mantido. O bit menos significativo vai para o Carry.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: RRA.B R10

RRA.W @R5

RRA.W 70(R13)

Instruções nativas do MSP430

Page 57: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

RRC[.W/.B] dst (Rotate right through carry)

Operação: C→MSB, MSB →MSB-1, ... LSB+1 → LSB, LSB →C

Descrição: o operando de destino é deslocado um bit para a direita. O Carry vaipara o bit mais significativo(MSB) é mantido. O bit menos significativovai para o Carry.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: RRC.B R10

RRC.W @R5

RRC.W 70(R13)

Instruções nativas do MSP430

Page 58: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

SUB[.W/.B] src, dst (Subtract source from destination)

Operação: dst – src→ dst

Descrição: o operando de origem é subtraído do operando de destino e o resultadoé armazenado no operando de destino. . O operando de origem não émodificado.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: SUB.B #23, R5

SUB.W R8, R12

SUB.W @R7, 20(R10)

Instruções nativas do MSP430

Page 59: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

SUBC[.W/.B] src, dst (Subtract source and borrow/.NOT. carry from destination)SBB[.W/.B] src, dst

Operação: dst + .NOT. src + C → dst

Descrição: o operando de origem é subtraído do operando de destino somando o complemento de 1 do operando de origem e o Carry. O resultado éarmazenado no operando de destino.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: SUBC.B R9, R5

SUBC.W 0(R8), R12

SUBC.W @R7, 20(R10)

Instruções nativas do MSP430

Page 60: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

SWPB dst (Swap bytes)

Operação: bits 15 a 8 ↔ bits 7 a 0

Descrição: os bytes mais significativo e menos significativo do operando de destinosão trocados.

Bits do Registrador de Estado afetados:nenhum

Exemplo: SWPB R5

SWPB @R8

SWPB 60(R10)

Instruções nativas do MSP430

Page 61: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

SXT dst (Extend Sign)

Operação: bit 7 → bit 8 … bit 15

Descrição: o bit de sinal (bit 7) é replicado para os bits 8 a 15.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: SXT R7

SXT @R12

SXT 30(R5)

Instruções nativas do MSP430

Page 62: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

XOR[.W/.B] src, dst (Exclusive OR of source with destination)

Operação: src .XOR. dst→ dst

Descrição: é realizada uma operação lógicaXORentre os operandos e o resultadofica armazenado no operando de destino. O operando de origem não émodificado.

Bits do Registrador de Estado afetados:N, Z, C, V

Exemplo: XOR.B #5A, R5

XOR.W R8, 20(R12)

XOR.B @R7, &P1OUT

Instruções nativas do MSP430

Page 63: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

Instruções emuladas do MSP430

ADC[.W/.B] dst (Add carry to destination)

Operação: dst + C → dst

Emulação: ADDC.W #0, dst

0 + C + dst→ dst

Descrição: o Carry é somado ao operando de destino.

BR/BRANCH dst (Branch to destination)

Operação: dst→ PC

Emulação: MOV.W dst, PC

Descrição: é realizado um desvio incondicional para o endereço especificado.

Page 64: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

CLR[.W/.B] dst (Clear destination)

Operação: 0→ dst

Emulação: MOV[.W/.B] #0, dst

0 → dst

Descrição: o operando de destino é zerado.

CLRC (Clear Carry bit)

Operação: 0→ C

Emulação: BIC.W #0x0001, SR

Descrição: o bit de Carry no Registrador de Estado é zerado.

Instruções emuladas do MSP430

Page 65: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

CLRN (Clear negative bit)

Operação: 0→ N

Emulação: BIC.W #0x0004, SR

Descrição: o bit de negativo no Registrador de Estado(N) é zerado.

CLRZ (Clear Zero bit)

Operação: 0→ Z

Emulação: BIC.W #0x0002, SR

Descrição: o bit de Zero no Registrador de Estado é zerado.

Instruções emuladas do MSP430

Page 66: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

DADC[.W/.B] dst (Add carry decimally to destination)

Operação: C + dst→ dest (BCD)

Emulação: DADD[.W/,B] #0, dst

Descrição: o bit de Carry é somado ao operando de destino, em BCD.

DEC[.W/.B] dst (Decrement destination)

Operação: dst- 1→ dst

Emulação: SUB[.W/.B] #1, dst

Descrição: o operando de destino é decrementado em 1.

Instruções emuladas do MSP430

Page 67: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

DECD[.W/.B] dst (Double-decrement destination)

Operação: dst –2→ dest

Emulação: SUB[.W/.B] #2, dst

Descrição: o operando de destino é decrementado em 2.

DINT (Disable general interrupts)

Operação: 0→ GIE

Emulação: BIC.W #0x0008, SR

Descrição: o bit de Habilitação Geral de Interrupções(GIE), no Registrador de Estado é zerado.

Instruções emuladas do MSP430

Page 68: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

INC[.W/.B] dst (Increment destination)

Operação: dst+ 1→ dst

Emulação: ADD[.W/.B] #1, dst

Descrição: o operando de destino é incrementado em 1.

EINT (Enable general interrupts)

Operação: 1→ GIE

Emulação: BIS.W #0x0008, SR

Descrição: o bit de Habilitação Geral de Interrupções(GIE), no Registrador de Estado é setado.

Instruções emuladas do MSP430

Page 69: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

INCD[.W/.B] dst (Double-increment destination)

Operação: dst + 2→ dest

Emulação: ADD[.W/.B] #2, dst

Descrição: o operando de destino é incrementado em 2.

INV[.W/.B] dst (Invert destination)

Operação: .NOT. dst→ dst

Emulação: XOR.W #0xFFFF, dstXOR.B #0xFF, dst

Descrição: os bits do operando de destino são complementados.

Instruções emuladas do MSP430

Page 70: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

POP[.W/.B] dst (Pop word/byte from stack to destination)

Operação: @SP→ dstSP + 2→ SP

Emulação: MOV[.W/.B] @SP+, dst

Descrição: o conteúdo do endereço apontado peloStack Pointer(TOS) é movidopara o operando de destino.

NOP (No operation)

Operação: nenhuma

Emulação: MOV.W R3, R3

Descrição: nenhuma operação é executada, porém é utilizado um ciclo de máquina.

Instruções emuladas do MSP430

Page 71: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

RLA[.W/.B] dst (Rotate left arithmetically)

Operação: C← MSB ← MSB-1 … LSB+1 ← LSB← 0

Emulação: ADD[.W/.B] dst, dst

Descrição: o operando de destino é deslocado um bit para a esquerda. O MSB vaipara o Carry e oLSB é preenchido com zero.

RET (Return from subroutine)

Operação: @SP→ PCSP + 2→ SP

Emulação: MOV.W @SP+, PC

Descrição: o endereço de retorno, colocado na pilha pela instrução CALL é movi-do para o PC. O programa continua a execução na instrução seguinteà instrução CALL.

Instruções emuladas do MSP430

Page 72: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

SBC[.W/.B] dst (Subtract borrow from destination)

Operação: dst + 0FFFFh + C → dst

Emulação: SUBC[.W/.B] #0, dst

Descrição: o operando de destino é somado aoCarry menos 1.

RLC[.W/.B] dst (Rotate left through carry)

Operação: C← MSB ← MSB-1 … LSB+1 ← LSB← C

Emulação: ADDC[.W/.B] dst, dst

Descrição: o operando de destino é deslocado um bit para a esquerda. O Carry vaipara o LSB e o MSB vai para o Carry.

Instruções emuladas do MSP430

Page 73: Assembly msp430 V00 - eletrica.ufpr.breletrica.ufpr.br/~pastro/TE124/MSP430/Assembly_msp430.pdf · TE124-Microcontroladores: Prof. Pastro Assembly MSP430 Microcontrolador da Texas

TE124-Microcontroladores:

Prof. Pastro

AssemblyMSP430

SETN (Set Negative bit)

Operação: 1→ N

Emulação: BIS #4, SR

Descrição: o bit de Negativoé setado.

SETC[.W/.B] (Set Carry bit)

Operação: 1→ C

Emulação: BIS #1, SR

Descrição: O bit de Carry é setado.

Instruções emuladas do MSP430