elt043 - aula 08 - programação do hcs12 - parte 3

17
ELT043 – Microcontroladores Graduação em Engenharia Eletrônica Universidade Federal de Itajubá IESTI Prof. Rodrigo de Paula Rodrigues Programação do HCS12 - Parte 3 Aula 08

Upload: italo-pereira-guimaraes

Post on 22-Dec-2015

13 views

Category:

Documents


1 download

DESCRIPTION

notas de aula sobre Programação do HCS12

TRANSCRIPT

Page 1: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

ELT043 – MicrocontroladoresGraduação em Engenharia Eletrônica

Universidade Federal de Itajubá IESTI

Prof. Rodrigo de Paula Rodrigues

Programação do HCS12 - Parte 3

Aula 08

Page 2: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Execução de instruções

Implementação de algoritmos

Ação W

?sim

não

Ação X

AÇÃO

+

DECISÃO

ELT043 - Microcontroladores Prof. Rodrigo

nãoDECISÃO

Ação Y

Page 3: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

Instruções de desvio de programa

HCS12 | Assembly para o HCS12

Parâmetros a serem utilizados pela instrução

CÓD. OPE OPERANDO

O que deve ser feito: desviar o fluxo do programa

Desviar por “n” posições de memória ou paraa posição de menória X

ELT043 - Microcontroladores Prof. Rodrigo

Instrução a ser efetuada pelo µP (OPCODE)

Parâmetros a serem utilizados pela instrução

Page 4: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Ação da instrução

Busca a instruçãona memória

Efetua as operaçõesnecessárias

ELT043 - Microcontroladores Prof. Rodrigo

Decodifica a instruçãoobtida

Aponta para a próximainstrução

Page 5: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Modo de endereçamento

CÓD. OPE DESLOCAMENTO DE e 8 bits

Relativo

ELT043 - Microcontroladores Prof. Rodrigo

PC+

PC ← PC + DESLOCAMENTO

Page 6: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Tipos de desvio

Tipo de desvio

Incondicional

condiçãoverdadeira

Condicional

CÓD. OPE

ELT043 - Microcontroladores Prof. Rodrigo

condiçãofalsa

verdadeira

PC ← PC + DESLOCAMENTOSe a CONDIÇÃO for VERDADEIRA , então PC ← PC + DESLOCAMENTO

Page 7: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Características do operando

Deslocamento de 8 bits

Complemento de 2 (para trás ou para frente)OPERANDO

ELT043 - Microcontroladores Prof. Rodrigo

para frente

para trás

Page 8: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:desvio para frente

PC atual (PC do desvio + 2)

∆PC Desvio de ∆PC

End

ereç

os

Instrução de desvio

ELT043 - Microcontroladores Prof. Rodrigo

PC novo (> PC atual)

∆PC Desvio de ∆PC

End

ereç

os

∆PC de 0 a +127

Page 9: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:desvio para frente

Desvio de $04 (BRA $04)

$0100

$0101

$20

$04

$0102 …

BRA

04

Endereço Conteúdo Instrução

$0103 …

$0104 …

PC atual

$0102+ $04

ELT043 - Microcontroladores Prof. Rodrigo

$0104 … …

$0105 …

$0106 …

$0107 … …

$0102+ $04

$0106

Page 10: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Desvio para frente

$0118

$0119

$20

??

$011A …

BRA

??

Endereço Conteúdo Instrução

… …

… …

$0124$011A

$000A

-

Desvio de $0A

ELT043 - Microcontroladores Prof. Rodrigo

… … …

… …

$0124 …

$0125 … …

Desvio de $0A

Page 11: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Desvio para trás

PC novo (< PC atual)

∆PC Desvio de - ∆PC

End

ereç

os

Instrução de desvio

∆ de -1 a -128

ELT043 - Microcontroladores Prof. Rodrigo

PC atual (PC do desvio + 2)∆PC de -1 a -128

Page 12: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Desvio para trás

Desvio de -$05 (BRA $FB)

$0100

$0101

$0102 …

Endereço Conteúdo Instrução

$0103 …

$0104 $20

BRA$0106

-$058 → $FB8 → $FFFB16

ELT043 - Microcontroladores Prof. Rodrigo

$0104 $20 BRA

$0105 …

$0106 …

$0107 … …

PC atual

$0106+$FFFB

$0101

Page 13: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Desvio para trás

Desvio

$0162

$0163

$0164 …

Endereço Conteúdo Instrução

… …

$0184 $20

BRA

$0186- $0163

$0023

PC novo

ELT043 - Microcontroladores Prof. Rodrigo

$0184 $20 BRA

$0185 ??

$0186 …

??

$0187 … …PC atual

-$002316 → $FFDD16 → $DD8

Desvio de $DD (-$23)

Page 14: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa:Regra geral para cálculo do desvio

A + B + D = F

Endereço da Tamanho, em bytes, Deslocamento Endereço final

ELT043 - Microcontroladores Prof. Rodrigo

Endereço dainstrução de salto

Tamanho, em bytes, do operando da

instrução de salto + 1

Deslocamentoem complemento de 2

e estendido para 16 bits

Endereço finalpretendido

Page 15: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Instruções de desvio de programa

Teste Instrução Condição Teste Instrução Condição

sempre BRA - nunca BNR -

r = 0 BEQ Z = 1 r ≠ 0 BNE Z = 0

r < 0 BMI N = 1 r > 0 BPL N = 0

carry BCS C = 1 sem carry BCC C = 0

overflow BVS V = 1 sem overflow BVC V = 0

r > m BGT r ≤ m BLE0=⊗+ VNZ 1=⊗+ VNZ

ELT043 - Microcontroladores Prof. Rodrigo

r > m BGT r ≤ m BLE

r < m BLT r ≥ m BGE

r > m BHI * r ≤ m BLS *

0=⊗+ VNZ 1=⊗+ VNZ

1=⊗ VN 0=⊗ VN

0=+ ZC 1=+ ZC

* não sinalizadosS X H I N Z V C

Page 16: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Assembly para o HCS12

Exercícios

1 – Desenvolva um programa que constantemente multiplique por 2 o valorpresente em uma dada posição de memória. Considere tanto o parâmetroquanto o resultado como valores de 8 bits;

2 – Altere o programa de forma que a multiplicação seja realizada a cada 4 a 8ciclos do barramento do processador;

3 – Altere o program de forma que somente quando um valor em uma dadaposição de memória for 1, a multiplicação deverá ser efetuada;

ELT043 - Microcontroladores Prof. Rodrigo

posição de memória for 1, a multiplicação deverá ser efetuada;

4 – Desenvolva um programa para resolver a igualdade r = x2 + 2*x + 12.Considere x um valor não sinalizado de 8 bits e r, também não sinalizado, de16 bits.

Page 17: ELT043 - Aula 08 - Programação Do HCS12 - Parte 3

HCS12 | Fim

Obrigado

ELT043 - Microcontroladores Prof. Rodrigo