You are on page 1of 4

Program Counter Aponta qual ser a prxima instruo dentro do programa a ser executada CPV.

Ele pode ser endereado por um dos sete mdos existentes nos MSP430. Alguns exemplos so mostrados a seguir: MOV #LABEL,PC ;desvia para o endereo do LABEL MOV LABEL, PC ;desvia para o endereo indicado pelo LABEL MOB @R15, PC ;desvio indireto pelo R4 Stock Pointer (ponteiro de pilha) A pilha um recurso utilizado para armazenar informaes enquanto sao executadas rotinas de interrupo ou chamadas de sub-rotinas. Para tanto necessrio apontar qual posio da pilha ser utilizada. Isso feito atravs do registrador Stack Pointer. MOV 2(SP), RG MOV R7,0(SP) PUSH #0123H POP R8 Modos de Endereamento Existem ao todo sete modos diferentes de acessar um dado com uma instruo Aseembly. Qualquer um deles pode ser utilizado para acessar um operando utilizado como fonte de uma operao. Para acesso a um operando de destino, apenas quatro modos esto disponveis, conforme podemos observar na tabela abaixo: FONTE_________________________________________DESTINO Registrador<===============================>Registrador Indexado<=================================>Indexado Simblico<================================>Simblico Absoluto<=================================>Absoluto Indireto Indireto com auto incremento Imediato Modo Imediato Iniciaremos pelo modo imediato, pois com ele que podemos iniciar um registrador ou posio de memria com um valor qualquer. O modo imediato concretiza-se pela presena de uma constante operando como fonte de operao. Em Assembly, a constante deve ser precedida do smbolo #. * Note que nesse modo somente pode ser utilizado para operandos fonte de uma operao. Exemplo: MOV #0x1000,R5 ; Carrega o registrador R5 com o valor 0x1000. Escrevendo o valor 0x29 no endereo 0x200 da memria: MOV.B #0x29, 80x200

Escrevendo o valor 0x1234 no endereo 0x200 da memria: MOV.W #0x1234, 8200 * Repare que usamos o operador & para especificar que o segundo operando um endereo de memria. O operando W utilizado para informar que a operao 16bits. O operando B utilizado para informar que a operao 8 bits. Modo Registrador Neste modo, o operando fonte ou destino um registrador da CPU. Este modo selecionado quando o campo As= 00 (a fonte um registrador da CPU), ou Ad=0 (o destino um registrador da CPU). O modo registrador pode ser utilizado tanto para operandos fonte quanto para operados, destinos ou ambos. Exemplo: Carregando o R15 com o valor de R4: MOV.W R4,R15 Carregando o endereo 0x200 com o valor de R15 em uma operao de 8bits: MOV.B R15,&0x200 Modo Indexado O modo indexado permite que se utilize uma constante (endereo absoluto), que somada a um registrador vai compor o endereo do operando fonte ou do operando de destino. Esse modo particularmente til no acesso a tabelas ou matrizes, em que o endereo do primeiro elemento desejado. Para utilizae esse modo de enderemento, o valor do endereo base deve ser fornecido, seguindo-o com o registrador desejado para o ndice entre parnteses. Com exceo dos registradores PC(R1) e CG1(R2), qualquer outro registrador pode ser utilizado como ndice no modo indexado. O PC e o CG1, quando utilizados como ndices, originam os modos Smblico e Absoluto. O modo indexado pode ser utilizado tanto para operandos fonte quanto para operandos destino, inclusive simultaneamente. Exemplo: Carregando o valor 0xAB no endereo 0x200 mais o ndice formado por R9: MOB.B #0xAB, 0x200(R9)

Modo Simblico O modo simblico uma variao do modo indexado. Neste caso, o registrador de ndice o R0(o contador de programa ou PC). No modo simblico o endereo do operando fonte ou de destino obtido pela soma de uma constante imediata contedo do PC. Exemplo: Copiando o contedo de R8 para o endereo representado pelo simbolo TESTE( localizado no endereo 0x0200 da memria) em uma operao de 8bits. MOV.B R8,TESTE Modo Absoluto A segunda variao do modo indexado chamado de modo absoluto. Nesse modo, o endereo absoluto do operando fonte ou destino informado diretamente como operando da instruo. A diferena entre modo absoluto e o modo indexado que nesse caso o registrador utilizado para indexar o endereo o R2, atuando como gerador de constantes (CG1) e gerando a constante 0, ou seja, o endereo ser o prprio valor do operando. * Para especificarmos um endereo absoluto, utilizamos o operador & em frente. Exemplo: Copiando o contedo do endereo especificado pelo smbolo TESTE (0x0200) para o endereo absoluto 0x208: MOV.B TESTE,&0X208 Modo Indireto No modo de endereamento indireto, o registrador (qualquer um dos 16 da CPU serve como apontador do endereo em que esta localizado o operando. Ou seja, o contedo do registrador o endereo do operando fonte. Esse modo somente pode ser utilizado para o operando fonte. No caso do operando de destino, possvel utilizar como alternativa o modo indexado, utilizando o deslocamento igual a zero: 0(Rx), sendo Rx um dos registradors da CPU (R0 a R15). Exemplo: Supondo que R6 contenha o valor 0x208, podemos copiar o contedo do endereo 0x208 oara o endereo absoluto 0x201 pela seguinte instruo: MOV.B @R6, &0X201

Registradores de I/O PxOUT - Registrador responsvel pelo controle da escrita dos pinos de sada. PxIN - Registrador responsvel pela leitura dos pinos de entrada e de um port PxDIR - Registrador responsvel pela configurao de direo dos pinos do microcontrolador. Pode ser definido como 0 para ENTRADA ou 1 como SADA. PxREN - Registrador responsvel por habilitar os registradores dos pinos de entrada que podem ser pullUp ou pullDown. PxIE - Registrador responsvel por habilitar a interrupo de cada pino I/O PxIES - Registrador responsvel por configurar o tipo de borda que gerar a interrupo de I/O, pode ser de subida ou de descida.

You might also like