Post on 07-Jul-2018
8/18/2019 Linguagem máquina exercícios
1/34
Microcontrolador 8051Microcontrolador 8051
AssemblyAssembly80518051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
8/18/2019 Linguagem máquina exercícios
2/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
● Num sistema microprocessado, geralmente, não existe umsistema operacional;
● O programa desenvolvido pelo programador deve cuidar
tanto da lógica do programa, bem como da conigura!ãoe acesso ao "ard#are e do gerenciamento de memória;
● $eralmente existe limita!ão de espa!o de memória;
8/18/2019 Linguagem máquina exercícios
3/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
●
8/18/2019 Linguagem máquina exercícios
4/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Lin#!a#e$ Asse$bl% Lin#!a#e$ Asse$bl%
8/18/2019 Linguagem máquina exercícios
5/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
● A Linguagem Assembly● % a codiica!ão dos códigos de m&'uina para uma
linguagem mais próxima da linguagem entendida pelo ser"umano;
● As instru!(es do processador são codiicadas emmnem)nicos para acilitar a identiica!ão de suauncionalidade;
● A tradu!ão da linguagem assembly para os códigos de
m&'uina do processador * eita atrav*s de um programac"amado assembler +ou montador
8/18/2019 Linguagem máquina exercícios
6/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
● A Linguagem Assembly● % totalmente atrelada ao processador, ou se-a, cada
processador possui a sua própria linguagem;
●
8/18/2019 Linguagem máquina exercícios
7/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Lin#!a#e$ Asse$bl% Lin#!a#e$ Asse$bl% do !& '()1do !& '()1
8/18/2019 Linguagem máquina exercícios
8/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
●
As instru!(es do 8051 podem ser classiicadas em 5 tiposdierentes.
– /ranserncia de dados;
– Aritm*ticas;
– ógicas; – 2ooleanas;
– 3esvio;
8/18/2019 Linguagem máquina exercícios
9/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamento● 3eine o modo como os dados são acessados;
● O 8051 possui 5 modos de endere!amento.
– 4ndere!amento direto;
– 4ndere!amento indireto;
– 4ndere!amento via registrador;
– 4ndere!amento por constante imediata;
– 4ndere!amento indexado;
8/18/2019 Linguagem máquina exercícios
10/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamento● Endereçamento imediato: o dado * especiicado na
própria instru!ão.
mov A, #31 ; carrega o valor 31 no acumulador
– O operando * identiicado pelo smbolo 6;
71
Acumulador
8/18/2019 Linguagem máquina exercícios
11/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamento● Endereçamento direto: o endere!o do dado *
especiicado diretamente na instru!ão.
mov A, 31 ; carrega o conteúdo do endereço 31 no
acumulador
8
97
1
1:8
:
70
31
7:
emória
1
Acumulador
8/18/2019 Linguagem máquina exercícios
12/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamento● Endereçamento indireto: o dado * acessado atrav*s do
endere!o contido nos registradores R0 ou R1<
– =uando o conte>do do registrador * um endere!o, este
registrador * precedido pelo smbolo ?; – Neste caso, os registradores @0 e @1 atuam como
ponteiros para o dado
8/18/2019 Linguagem máquina exercícios
13/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamentomov A, @R0 ; carrega o conteúdo da posição
; de mem ória indicada no
; registrador R1 no acumulador
8
97
1
1:8
:
70
31
7:
emória
1
Acumulador
31
@0
8/18/2019 Linguagem máquina exercícios
14/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamento● Endereçamento indexado: o dado * acessado atrav*s do
endere!o contido no registrador 3/@<
movc A, @A+DPTR ; carrega o conteúdo da
; posição de mem ória de
; programa indicada no
; registrador DPTR no acumulador
movx A, @DPTR ; carrega o conteúdo da posição
; de mem ória RAM externa indicada
;no registrador DPTR no acumulador
– Neste caso, o registrador 3/@ atua como ponteiro para odado
8/18/2019 Linguagem máquina exercícios
15/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamentomovx A, @DPTR ; carrega o conteúdo da posição
; de mem ória RAM externa indicada
;no registrador DPTR no
acumulador
8
97
1
1:8
1A:
1A70
1A31
1A7:
emória
1
Acumulador
1A31
3/@
8/18/2019 Linguagem máquina exercícios
16/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Modos de Endereçamento● Endereçamento via Registrador: o dado * acessado
atrav*s dos registradores @0 a @9<
mov A, R5 ; carrega o conteúdo do
;registrador R5 no acumulador
8
97
1
1:8
@9
@B
R5
@0
2anco de@egistradores
1
Acumulador
. . .
8/18/2019 Linguagem máquina exercícios
17/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● A pil"a * uma estrutura de armaCenamento de dados
em 'ue cada novo dado * colocado sempre no topoda pil"a;
●
O registrador stacDEpointer +F aponta para o topo dapil"a;
● A cada novo dado colocado na pil"a, o registrador F* incrementado, para apontar o topo da pil"a;
● A cada dado retirado da pil"a, o registrador F *decrementado<
8/18/2019 Linguagem máquina exercícios
18/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● As instru!(es GFH e O inserem e retiram
respectivamente os dados da pil"a;
● Nos microprocessadores, a pil"a * usada
principalmente para guardar o estado do processadorna c"amada de subErotinas e interrup!(es;
8/18/2019 Linguagem máquina exercícios
19/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4stado atual da pil"a
70" 3ado 1
F
70"
71"
7:"
77"
emória
:I"
A
1A"
@0
8/18/2019 Linguagem máquina exercícios
20/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4xecutando uma instru!ão pus" AJJ
– asso 1. o registrador F * incrementado, apontandopara a próxima posi!ão de memória.
31$ 3ado 1
F
70"
71"
7:"
77"
emória
:I"
A
1A"
@0
8/18/2019 Linguagem máquina exercícios
21/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4xecutando uma instru!ão pus" AJJ
– asso :. o conte>do do acumulador * copiado para aposi!ão apontada pelo registrador F.
71" 3ado 1
F
70"
%F$71"
7:"
77"
emória
%F$
A
1A"
@0
8/18/2019 Linguagem máquina exercícios
22/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4xecutando uma instru!ão pus" @0
– asso 1. o registrador F * incrementado, apontandopara a próxima posi!ão de memória.
3%$ 3ado 1
F
70"
:I"71"
7:"
77"
emória
:I"
A
1A"
@0
8/18/2019 Linguagem máquina exercícios
23/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4xecutando uma instru!ão pus" @0
– asso :. o conte>do do registrador @0 * copiado paraa posi!ão apontada pelo registrador F.
7:" 3ado 1
F
70"
:I"
1A$
71"
7:"
77"
emória
:I"
A
1A$
@0
8/18/2019 Linguagem máquina exercícios
24/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● Novo estado da pil"a.
7:" 3ado 1
F
70"
:I"
1A$
71"
7:"
77"
emória
:I"
A
1A"
@0
8/18/2019 Linguagem máquina exercícios
25/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4xecutando uma instru!ão pop @0
– asso 1. o conte>do da posi!ão apontada peloregistrador F * copiado para o registrador @0.
7:" 3ado 1
F
70"
:I"
1A$
71"
7:"
77"
emória
:I"
A
1A$
@0
8/18/2019 Linguagem máquina exercícios
26/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Funionamento da !"L#A● 4xecutando uma instru!ão pop AJJ
– asso :. o conte>do da posi!ão de memória apontadapelo registrador F * copiado para o acumulador.
71" 3ado 1
F
70"
:I"71"
7:"
77"
emória
:I"
A
1A"
@0
8/18/2019 Linguagem máquina exercícios
27/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● Gm programa em linguagem assembly possui osseguintes elementos b&sicos.
– "nstruç-es: são os mnem)nicos das instru!(es doprocessador;
– (erandos: são as inorma!(es reerentes aos dadosprocessados pelas instru!(es;
– !seudo/instruç-es: são declara!(es inseridas nocódigo onte para orientar o montador;
8/18/2019 Linguagem máquina exercícios
28/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
– einiç-es: são declara!(es 'ue atribuem um nome aalgumas constantes, tornando mais &cil a reer nciaềno resto do programa;
– R2tulos )labels,: são nomes atribudos K endere!osno programa;
– *oment'rios: inorma!(es colocadas peloprogramador para documentar o programa< % 'ual'uertexto colocado após um sinal de pontoEeEvrgula;
8/18/2019 Linguagem máquina exercícios
29/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● A ormata!ão de um programa em assembly * bastantergida;
●
Jada lin"a do programa cont*m uma inorma!ão para omontador;
8/18/2019 Linguagem máquina exercícios
30/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● A estrutura da lin"a * a seguinte.
– Os rótulos são colocados próximos a margem
es'uerda da lin"a< odem vir seguidos do sinal . +doispontos;
– Feguindo o rótulo, est& o mnem)nico da instru!ão e osoperandos;
– Após os operandos estão os coment&rios;
8/18/2019 Linguagem máquina exercícios
31/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● 4xemplo.
inicio. mov F, 670" ; inicialiCa a pil"a
mov A, 6L5 ; atribui o valor inicial ; ao acumulador
8/18/2019 Linguagem máquina exercícios
32/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● 4struturas b&sicas de um programa em assembly.
– ubrotinas: uma por!ão de código executada v&rias
veCes no programa< Fão c"amadas por instru!(es noprograma e causam um desvio da se'uncia normal deexecu!ão do programa;
– "nterru(ç-es: causam o desvio do luxo normal deexecu!ão do programa devido a um evento de"ard#are< Fão como as subrotinas, mas não sãocausadas por instru!(es do processador, mas sim poreventos de "ard#are<
8/18/2019 Linguagem máquina exercícios
33/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● 4struturas b&sicas de um programa em assembly.
– eis-es: são estruturas de programa!ão 'ue
permitem desviar o luxo de execu!ão de um programaconorme o estado de determinadas condi!(es< 4stascondi!(es são veriicadas pelos lags;
– Re(etiç-es: são estruturas de programa!ão 'uepermitem executar um peda!o de código v&rias veCes;
8/18/2019 Linguagem máquina exercícios
34/34
Microcontrolador 8051Microcontrolador 8051
UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!" UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Koval!"
Estrutura &'sia de um (rograma em LinguagemAssembly )(ara o u* +051,
● 4struturas b&sicas de um programa em assembly.
– seudoEinstru!(es.
●
O@$. deinem um endere!o de memória, onde ainstru!ão da lin"a seguinte ser& alocada;
● 4N3. indica o im de um programa;● 4=G. Atribuem um valor a um rótulo< Fão usados
para deinir constantes;● 32, 3M. deinem +reservam espa!os de memória
para alocar dados< Fão usados para deinir vari&veis;