Upload
italo-pereira-guimaraes
View
240
Download
1
Embed Size (px)
Citation preview
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
1/23
ELT043 MicrocontroladoresGraduao em Engenharia Eletrnica
Universidade Federal de ItajubIESTI
Prof. Rodrigo de Paula Rodrigues
Programao do HCS12 - Parte 1Aula 06
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
2/23
HCS12 | Histrico
Programao de microprocessadores
Atividade a serexecutada
1 2 3 ...
1
2 3
...
Tarefasindividuais
Atividade a serexecutada
ELT043 - Microcontroladores Prof. Rodrigo
criao do roteiro
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
3/23
HCS12 | Histrico
Programao de microprocessadores
1
2 3
Atividade a serexecutada
P1 2 3 ...
Tarefasindividuais
ELT043 - Microcontroladores Prof. Rodrigo
...
criao do roteiro
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
4/23
Programao de microprocessadores
HCS12 | Histrico
Roteiro de instrues
Nmeros binrios(modo da mquina)
Construes complexas(modo humano)
Instrues textuais(rtulos)
ELT043 - Microcontroladores Prof. Rodrigo
cdigo de mquina
...
Linguagem de programao(C, C++, Pascal, etc)
....
Linguagem de montagem
....
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
5/23
Programao de microprocessadores
HCS12 | Histrico
Roteiro de instrues
Cdigo demquina
Assembly(baixo nvel)
Linguagemde alto nvelasmmontagem
arquivo-fonte
ELT043 - Microcontroladores Prof. Rodrigo
nvel de abstrao
conhecimento da arquitetura do P
compilao
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
6/23
ExemploSoma de duas variveis no HCS12
M[ $0003 ] = M[ $0001 ] + M[ $0002 ]
HCS12 | Assemblypara o HCS12
char x, y, z;z = x + LDAA $01
$96$01D6
Linguagemde alto nvel
Assembly(baixo nvel)
Cdigo demquina
ELT043 - Microcontroladores Prof. Rodrigo
LDAB
ABASTAA
$02
$03$0001
$0002
$0003
x
y
z
Memriacompilao $02$18
$06$5B$03
montagem
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
7/23
HCS12 | Assemblypara o HCS12
Assemblypara o HCS12Freescale CodeWarrior
Representaonumrica
Diretivas decompilao
Estrutura deprogramas
ELT043 - Microcontroladores Prof. Rodrigo
Modos deendereamento
Diretivas deinstruo
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
8/23
Estrutura de programas
HCS12 | Assemblypara o HCS12
Declarao de variveis
Declarao de constantes
Diretivas para o montador01: XDEF Inicio02: ABSENTRY Inicio03:04: ROMInicio : EQU $400005: RAMInicio: EQU $000006:
07: ORG RAMInicio08: Contador : DS.B 1 ; Varivel09:10: ORG ROMInicio11:12: Inicio: LDS #RAMInicio+10
Inicializao dos vetores
(cdigo de mquina)
ELT043 - Microcontroladores Prof. Rodrigo
13:
14: ABA15: STAB $0316: END17:18: ORG $FFFE19: DC.W Inicio
Rtulos Diretivas
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
9/23
Representao numrica
HCS12 | Assemblypara o HCS12
decimalnenhum
Prefixo Base numrica
10, 20, 30, 255, 12876, 65534
Exemplos
hexadecimal$ $01, $A9, $FF, $1234, $FFFF
octal@ @1, @23, @3455, @177777
LDAA 255
STAA $F3A1
LDAB @37
ELT043 - Microcontroladores Prof. Rodrigo
binria% %10101010, %11111111 STAB %01101001
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
10/23
Formato geral de declaraes
HCS12 | Assemblypara o HCS12
rtulo * declarao parmetro comentrio *
valor relacionado ao operanto ou diretiva
comentrio precedido por ;
ELT043 - Microcontroladores Prof. Rodrigo
nome associado declarao, o qual recebe o endereo da posio da declarao
de instruo ou diretiva
* opcional
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
11/23
Formato geral de declaraesExemplos
HCS12 | Assemblypara o HCS12
rtulo * declarao parmetro comentrio *
ORG $0100 ; Posio de incio do programa
INICIO: LDAA %0110
LDAB 10
CONST_A: EQU $33; Declarar a constante como $33
; B 10
; A 6
ELT043 - Microcontroladores Prof. Rodrigo
ABA ; A A + B = 10 + 6
END ; Fim do programa
DECASUBTRAIR: ; A A -1 = 16 1 = 15
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
12/23
Diretivas de compilao
HCS12 | Assemblypara o HCS12
Especificar a posio da memria a partirda qual comear a montagem.
ORG POS
Diretiva Finalidade
ORG $0100
Exemplos
Parar a montagem.END END
ELT043 - Microcontroladores Prof. Rodrigo
Reservar uma posio de memria e ento
inicializ-la. DC.Be DC.W so variantes.DC VALOR
DC.B $1234, DC.W $1235
Reservar N posies de memria.DS.Be DS.W so variantes.
DS N DS.B 10, DS.W 2
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
13/23
Diretivas de compilao (cont.)
HCS12 | Assemblypara o HCS12
Diretiva Finalidade Exemplos
Ocupar N posies de memria e inici-las com o valor VALOR
FILL VALOR, N FILL $4, 20
Define uma constante.EQU VALOR EQU $33, EQU $1234
ELT043 - Microcontroladores Prof. Rodrigo
Reservar um sequncia de posies capazde reter os caracteres da string.FCC STRING FCC MENSAGEM
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
14/23
Modos de endereamento
HCS12 | Assemblypara o HCS12
inerentenenhum
Prefixo/sufixo Modo
CLRB, CLI, ABA
Exemplos
imediato# LDAA #10, LDAB #$25
diretonenhum STAA $35, ANDB 34
estendidonenhum STAB $3456, ORAB $FF23
ELT043 - Microcontroladores Prof. Rodrigo
relativonenhum BGT 10, BGT $8F
indexado, x LDAA 0,X; STAA 33,X
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
15/23
Diretivas de instrues
HCS12 | Assemblypara o HCS12
todo o conjunto de instrues da arquitetura
instrues de operao para o P
declarao
operao e modo de endereamento
cdigo de mquina da instruo
ELT043 - Microcontroladores Prof. Rodrigo
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
16/23
Diretivas de instruesExemplos
HCS12 | Assemblypara o HCS12
LDX #$F0AB ; IX $F0AB, imediato
INICIO: LDAB #$20 ; B $20, modo imediato
DECAREPETIR:
LDAB $20 ; B M[$0020], modo direto
Cd. mquina
$FEF0AB
$C620$D620
$43
rtulo * declarao parmetro comentrio *
ELT043 - Microcontroladores Prof. Rodrigo
JSR $DFA9 ; PC $DFA9, estendido
CHAMAR: INCB
CMPA #$0A ; Comparar A com o valor $0A
$16DFA9$52
$810A
; modo inerente
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
17/23
ExemploM[$1002] = M[$1000] + M[$1001]
HCS12 | Assemblypara o HCS12
02: ABSENTRY Inicio03:04: ROMInicio : EQU $400005: RAMInicio: EQU $100006:07: ORG RAMInicio08: VA: DC.B 02 ; A
09: VB: DC.B 03 ; B10: VR: DS.B 1 ; R11:12: ORG ROMInicio13: Inicio:
4000h a 43FFh Programa1024 bytes
Espao deendereamento
ELT043 - Microcontroladores Prof. Rodrigo
16 LDAB VB17: ABA18: STAB VR19:20: ORG $FFFE21: DC.W Inicio22:
23: END
1000h a 107Fh Dados128 bytes
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
18/23
Execuo de instrues
HCS12 | Execuo de instrues
P
Ciclo de execuo
Tempo de execuo
ELT043 - Microcontroladores Prof. Rodrigo
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
19/23
Execuo de instrues:Ciclo de execuo
HCS12 | Execuo de instrues
Ciclo de execuo
Mudana de contexto
Atualizao do PC
ELT043 - Microcontroladores Prof. Rodrigo
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
20/23
HCS12 | E d i
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
21/23
Execuo de instrues:
HCS12 | Execuo de instrues
1
Ciclos Por Instruo
ELT043 - Microcontroladores Prof. Rodrigo
i
i
barramento
execuo
f
HCS12 | E d i t
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
22/23
Execuo de instrues:Ciclos de instruo
HCS12 | Execuo de instrues
01: XDEF Inicio02: ABSENTRY Inicio03:04: ORG $100005: VA: DC.B 02 ; A06: VB: DC.B 03 ; B07: VR: DS.B 1 ; R
08:09: ORG $400010: Inicio: LDAA VA11: LDAB VB12: ABA
113233)( =+++=
ii
ICPI
T 11=
; CPI de 3 ciclos; CPI de 3 ciclos; CPI de 2 ciclos
ELT043 - Microcontroladores Prof. Rodrigo
14:15: ORG $FFFE16: DC.W Inicio17:18: END
barramentof
HCS12 | Fi
7/21/2019 ELT043 - Aula 06 - Programao Do HCS12 - Parte 1
23/23
HCS12 | Fim
Obrigado
ELT043 - Microcontroladores Prof. Rodrigo