linguagem máquina exercícios

Upload: carla-barbosa

Post on 07-Jul-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

  • 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;