elt043 - aula 07 - programação do hcs12 - parte 2
Post on 22-Dec-2015
13 Views
Preview:
DESCRIPTION
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