elt043 - aula 07 - programação do hcs12 - parte 2

Post on 22-Dec-2015

13 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

notas de aula sobre Programação do HCS12

TRANSCRIPT

ELT043 – MicrocontroladoresGraduação em Engenharia Eletrônica

Universidade Federal de Itajubá IESTI

Prof. Rodrigo de Paula Rodrigues

Programação do HCS12 - Parte 2:Instruções aritméticas e lógicas básicas

Aula 07

Diretivas de instruções da família HCS12

HCS12 | Assembly para o HCS12

O que deve ser feito

Com quem deve ser feito

CÓD. OPE OPERANDO(s)

+

ELT043 - Microcontroladores Prof. Rodrigo

operações específicas

tamanho das instruções

ciclos de execução

reflexos no registro de código de condição

HCS12 | Assembly para o HCS12

Modelo de análise de instruções

OP ~ # H I N Z V C

Código demáquina

Comprimento(bytes) Não afetado

XS

ELT043 - Microcontroladores Prof. Rodrigo

máquina

Númerode ciclos

(bytes) Não afetadoValor 1 se verdadeiro, senão, 0Valor 0 sempreValor 1 sempre

01

Instruções básicas de trabalho com osacumuladores

HCS12 | Assembly para o HCS12

acumuladores

CLR(A/B) - Inicialização

TAB/TBA – Transferência de valores

LDA(A/B/D) - Carregamento

ELT043 - Microcontroladores Prof. Rodrigo

ST(AA/AB/DD) - Armazenamento

Inicialização dos acumuladores

HCS12 | Assembly para o HCS12

S X H I N Z V CCLRACLRB

A $00B $00 0 1 0 0

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

CLRA

Transferência de valores entre acumuladores

HCS12 | Assembly para o HCS12

S X H I N Z V CTBATAB

A BB A 0

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

TBA

Carregar o acumulador

HCS12 | Assembly para o HCS12

S X H I N Z V CLDAALDAB

A ← MB ← M 0

ELT043 - Microcontroladores Prof. Rodrigo

Imediato

LDAA #$10

Direto

LDAB $10

Estendido

LDAB $FAAB

Indexado

LDAA $01, X

Carregar o acumulador

HCS12 | Assembly para o HCS12

S X H I N Z V CLDD A:B ← M:M+10

ELT043 - Microcontroladores Prof. Rodrigo

Imediato

LDD #$1034

Direto

LDD $10

Estendido

LDD $FAAB

Indexado

LDD $01, X

Armazenar valor do acumulador

HCS12 | Assembly para o HCS12

S X H I N Z V CSTAASTAB

A → MB → M 0

ELT043 - Microcontroladores Prof. Rodrigo

Direto

STAA $10

Estendido

STAB $FAAB

Indexado

STAB $01, X

Armazenar valor do acumulador

HCS12 | Assembly para o HCS12

S X H I N Z V CSTD A:B → M:M+10

ELT043 - Microcontroladores Prof. Rodrigo

Direto

STD $10

Estendido

STD $FAAB

Indexado

STD $01, X

Instruções aritméticas básicas

HCS12 | Assembly para o HCS12

ABA – Soma de acumuladores

ADDC(A/B) – Adição com carry

SBC(A/B) – Subtração com borrow

SB(A/B/D) – Subtração sem borrow

INC(A/B) – Incrementar acumulador DEC(A/B) – Subtrair acumulador

ELT043 - Microcontroladores Prof. Rodrigo

ADDC(A/B) – Adição com carry

ADD(A/B/D) – Adição sem carry

SB(A/B/D) – Subtração sem borrow

Incrimentar acumulador

HCS12 | Assembly para o HCS12

S X H I N Z V CINCAINCB

A ← A + 1B ← B + 1

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

INCB

Decrementar acumulador

HCS12 | Assembly para o HCS12

S X H I N Z V CDECADECB

A ← A - 1B ← B - 1

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

DECA

Somar acumuladores

HCS12 | Assembly para o HCS12

S X H I N Z V CABA A ← A + B

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

ABA

Adicionar ao acumulador com carry

HCS12 | Assembly para o HCS12

S X H I N Z V CADCAADCB

A ← A + M + CB ← B + M + C

ELT043 - Microcontroladores Prof. Rodrigo

ADCA #$10 ADCB $10 ADCB $FAAB ADCB $AE,X

Imediato Direto Estendido Indexado

Adicionar ao acumulador sem carry

HCS12 | Assembly para o HCS12

S X H I N Z V CADDAADDB

A ← A + MB ← B + M

ELT043 - Microcontroladores Prof. Rodrigo

ADDA #$10 ADDB $10 ADDB $FAAB ADDA $AE,X

Imediato Direto Estendido Indexado

Adicionar ao acumulador sem carry

HCS12 | Assembly para o HCS12

S X H I N Z V CADDD A:B ← A:B + M:M+1

ELT043 - Microcontroladores Prof. Rodrigo

ADDD #$1234 ADDD $10 ADDD $FAAB ADDD $AE,X

Imediato Direto Estendido Indexado

Subtrair do acumulador com borrow

HCS12 | Assembly para o HCS12

S X H I N Z V CSBCASBCB

A ← A - M - CB ← B - M - C

ELT043 - Microcontroladores Prof. Rodrigo

SBCA #$10 SBCB $10 SBCA $FAAB SBCB $AE,X

Imediato Direto Estendido Indexado

Subtrair do acumulador sem borrow

HCS12 | Assembly para o HCS12

S X H I N Z V CSUBASUBB

A ← A - MB ← B - M

ELT043 - Microcontroladores Prof. Rodrigo

SUBA #$10 SUBB $10 SUBB $FAAB SUBA $AE,X

Imediato Direto Estendido Indexado

Subtrair do acumulador sem borrow

HCS12 | Assembly para o HCS12

S X H I N Z V CSUBD A:B ← A:B - M:M+1

ELT043 - Microcontroladores Prof. Rodrigo

SUBD #$1234 SUBD $FE SUBD $FEDC SUBD $02,X

Imediato Direto Estendido Indexado

Instruções lógicas básicas

HCS12 | Assembly para o HCS12

NEG(A/B) – Complemento de 2

AND(A/B) – Operação E

ORA(A/B) – Operação Ou

COM(A/B) – Complemento de 1 EOR(A/B) – Operação Ou-Exclusivo

ELT043 - Microcontroladores Prof. Rodrigo

AND(A/B) – Operação E

Complemento de 2

HCS12 | Assembly para o HCS12

S X H I N Z V CNEGANEGB

NEGA ← A + 1NEGB ← B + 1

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

NEGB

Complemento de 1

HCS12 | Assembly para o HCS12

S X H I N Z V CCOMACOMB 0 1

COMA ← ACOMB ← B

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

COMA

Operação lógica E bit a bit

HCS12 | Assembly para o HCS12

S X H I N Z V CANDAANDB

A ← A & MB ← B & M 0

ELT043 - Microcontroladores Prof. Rodrigo

NEGA #$10 NEGB $10 NEGB $FAAB NEGB $AE,X

Imediato Direto Estendido Indexado

Operação lógica Ou bit a bit

HCS12 | Assembly para o HCS12

S X H I N Z V C

0

ORAAORAB

A ← A | MB ← B | M

ELT043 - Microcontroladores Prof. Rodrigo

ORAB #$10 ORAB $10 ORAA $FAAB ORAB $AE,X

Imediato Direto Estendido Indexado

Operação lógica Ou -Exclusivo bit a bit

HCS12 | Assembly para o HCS12

S X H I N Z V C

0

EORAEORB

A ← A MB ← B M

ELT043 - Microcontroladores Prof. Rodrigo

EORA #$10 EORB $10 EORB $FAAB EORA $AE,X

Imediato Direto Estendido Indexado

Instruções de deslocamento e rotaçãode bits

HCS12 | Assembly para o HCS12

de bits

LSL(A/B/D) – Des. lógico à esquerda

ASL(A/B/D) - Des. aritmético à esquerda

ASR(A/B) - Des. aritmético à direita

ROL(A/B) - Rotação à esquerda

ELT043 - Microcontroladores Prof. Rodrigo

LSR(A/B/D) – Des. lógico à direita ROR(A/B) – Rotação à direita

Deslocamento lógico e aritmético à esquerda

HCS12 | Assembly para o HCS12

LSLA(B)ASLA(B) b0b7

0C

S X H I N Z V C

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

LSLA

Deslocamento lógico e aritmético à esquerda

HCS12 | Assembly para o HCS12

S X H I N Z V CLSLDASLD

0C

…b0b7 A

…b0b7 B

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

ASLD

Deslocamento lógico à direita

HCS12 | Assembly para o HCS12

LSRA(B)b0b7

0C

S X H I N Z V C

0

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

LSRB

Deslocamento lógico à direita

HCS12 | Assembly para o HCS12

LSRD S X H I N Z V C

0

0

C

…b0b7 A

…b0b7 B

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

LSRD

Deslocamento aritmético à direita

HCS12 | Assembly para o HCS12

ASRA(B) S X H I N Z V C

b0b7 C

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

ASRA

Rotação à esquerda

HCS12 | Assembly para o HCS12

ROLA(B) S X H I N Z V C

b0b7C

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

ROLB

Rotação à direita

HCS12 | Assembly para o HCS12

RORA(B) S X H I N Z V C

b0b7C

ELT043 - Microcontroladores Prof. Rodrigo

Inerente

RORA

HCS12 | Fim

Obrigado

ELT043 - Microcontroladores Prof. Rodrigo

top related