Você está na página 1de 35

ELT043 Microcontroladores

Graduao em Engenharia Eletrnica


Universidade Federal de Itajub
IESTI
Aula 07
Programao do HCS12 - Parte 2:
Instrues aritmticas e lgicas bsicas
Prof. Rodrigo de Paula Rodrigues

HCS12 | Assembly para o HCS12

Diretivas de instrues da famlia HCS12

CD. OPE

OPERANDO(s)
Com quem deve ser feito
O que deve ser feito
+

operaes especficas
tamanho das instrues
ciclos de execuo
reflexos no registro de cdigo de condio

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Modelo de anlise de instrues

OP

Comprimento
(bytes)

Cdigo de
mquina
Nmero
de ciclos

ELT043 - Microcontroladores

0
1

No afetado
Valor 1 se verdadeiro, seno, 0
Valor 0 sempre
Valor 1 sempre

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Instrues bsicas de trabalho com os


acumuladores
CLR(A/B) - Inicializao

TAB/TBA Transferncia de valores

LDA(A/B/D) - Carregamento

ST(AA/AB/DD) - Armazenamento

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Inicializao dos acumuladores

CLRA
CLRB

A
B

$00
$00

Inerente
CLRA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Transferncia de valores entre acumuladores

TBA
TAB

A
B

B
A

Inerente
TBA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Carregar o acumulador

LDAA
LDAB

A M
B M

V
0

Imediato

Direto

Estendido

Indexado

LDAA #$10

LDAB $10

LDAB $FAAB

LDAA $01, X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Carregar o acumulador

LDD

A:B M:M+1

Imediato

Direto

Estendido

Indexado

LDD #$1034

LDD $10

LDD $FAAB

LDD $01, X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Armazenar valor do acumulador

STAA
STAB

A
B

M
M

Direto

Estendido

Indexado

STAA $10

STAB $FAAB

STAB $01, X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Armazenar valor do acumulador

STD

A:B M:M+1

Direto

Estendido

Indexado

STD $10

STD $FAAB

STD $01, X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Instrues aritmticas bsicas

INC(A/B) Incrementar acumulador

DEC(A/B) Subtrair acumulador

ABA Soma de acumuladores

SBC(A/B) Subtrao com borrow

ADDC(A/B) Adio com carry

SB(A/B/D) Subtrao sem borrow

ADD(A/B/D) Adio sem carry

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Incrimentar acumulador

INCA
INCB

AA+1
BB+1

Inerente
INCB

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Decrementar acumulador

DECA
DECB

AA-1
BB-1

Inerente
DECA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Somar acumuladores

ABA

A A+B

Inerente
ABA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Adicionar ao acumulador com carry

ADCA
ADCB

A A+M+C
B B+M+C

Imediato

Direto

Estendido

Indexado

ADCA #$10

ADCB $10

ADCB $FAAB

ADCB $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Adicionar ao acumulador sem carry

ADDA
ADDB

A A+M
B B+M

Imediato

Direto

Estendido

Indexado

ADDA #$10

ADDB $10

ADDB $FAAB

ADDA $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Adicionar ao acumulador sem carry

ADDD

A:B A:B + M:M+1

Imediato

Direto

Estendido

Indexado

ADDD #$1234

ADDD $10

ADDD $FAAB

ADDD $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Subtrair do acumulador com borrow

SBCA
SBCB

A A-M-C
B B-M-C

Imediato

Direto

Estendido

Indexado

SBCA #$10

SBCB $10

SBCA $FAAB

SBCB $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Subtrair do acumulador sem borrow

SUBA
SUBB

AA-M
BB-M

Imediato

Direto

Estendido

Indexado

SUBA #$10

SUBB $10

SUBB $FAAB

SUBA $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Subtrair do acumulador sem borrow

SUBD

A:B A:B - M:M+1

Imediato

Direto

Estendido

Indexado

SUBD #$1234

SUBD $FE

SUBD $FEDC

SUBD $02,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Instrues lgicas bsicas

COM(A/B) Complemento de 1

EOR(A/B) Operao Ou-Exclusivo

NEG(A/B) Complemento de 2

ORA(A/B) Operao Ou

AND(A/B) Operao E

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Complemento de 2

NEGA
NEGB

NEGA A + 1
NEGB B + 1

Inerente
NEGB

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Complemento de 1

COMA
COMB

COMA A
COMB B

Inerente
COMA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Operao lgica E bit a bit

ANDA
ANDB

A A&M
B B&M

V
0

Imediato

Direto

Estendido

Indexado

NEGA #$10

NEGB $10

NEGB $FAAB

NEGB $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Operao lgica Ou bit a bit

ORAA
ORAB

A A|M
B B|M

V
0

Imediato

Direto

Estendido

Indexado

ORAB #$10

ORAB $10

ORAA $FAAB

ORAB $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Operao lgica Ou-Exclusivo bit a bit

EORA
EORB

A A
B B

M
M

V
0

Imediato

Direto

Estendido

Indexado

EORA #$10

EORB $10

EORB $FAAB

EORA $AE,X

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Instrues de deslocamento e rotao


de bits

LSL(A/B/D) Des. lgico esquerda

ASR(A/B) - Des. aritmtico direita

ASL(A/B/D) - Des. aritmtico esquerda

ROL(A/B) - Rotao esquerda

LSR(A/B/D) Des. lgico direita

ROR(A/B) Rotao direita

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Deslocamento lgico e aritmtico esquerda

LSLA(B)
ASLA(B)

0
C

b7

b0

Inerente
LSLA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Deslocamento lgico e aritmtico esquerda

LSLD
ASLD

b7

b0

b7

b0

Inerente
ASLD

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Deslocamento lgico direita

LSRA(B)

0
b7

b0

Inerente
LSRB

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Deslocamento lgico direita

LSRD

b7

b0

b7

b0

Inerente
LSRD

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Deslocamento aritmtico direita

ASRA(B)
b7

b0

Inerente
ASRA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Rotao esquerda

ROLA(B)
C

b7

b0

Inerente
ROLB

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Assembly para o HCS12

Rotao direita

RORA(B)
C

b7

b0

Inerente
RORA

ELT043 - Microcontroladores

Prof. Rodrigo

HCS12 | Fim

Obrigado

ELT043 - Microcontroladores

Prof. Rodrigo