SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A....
Transcript of SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A....
![Page 1: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/1.jpg)
SEL-433 Aplicação de Microprocessadores I
Programação de Microprocessadores
![Page 2: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/2.jpg)
Programação de Microprocessadores
• Microprocessadores são ‘Máquinas de Estado Seqüenciais Síncronas’que operam mediante a execução de uma seqüência de códigos binários armazenados em memória.
![Page 3: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/3.jpg)
• As ordens ou comandos compreendidos por um determinado Microprocessador, são INSTRUÇÕESseqüencialmente armazenadas na Memória.
• Ao conjunto de Instruções compreendidos por um determinado Microprocessador dá-se o nome de “INSTRUCTION SET”.
• Cada Microprocessador tem seu próprio Instruction Set que é em geral, diferente do Instruction Set de outro Microprocessador de fabricantes diferentes.
![Page 4: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/4.jpg)
• Uma seqüência de Instruções do Instruction Set, armazenadas na memória e que realiza alguma operação, recebe o nome de PROGRAMA.
• Cada Instrução do Microprocessador é um código binário formada em geral por um ou mais Bytes.
• A cada código binário equivalente a uma Instrução está associado um Mnemônico para facilitar a compreensão da função que a Instrução executa.
• Ao conjunto de Instruções e seus Mnemônicos equivalentes dá-se o nome de LINGUAGEM ASSEMBLY.
![Page 5: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/5.jpg)
Fluxograma
• Para a documentação lógica de um Programa em Assembly utiliza-se um Fluxograma ou Diagrama de Blocos.
• Cada bloco do Fluxograma equivale a um sub-conjunto doInstruction Set do Microprocessador.
• O Fluxograma é uma forma de se implementar logicamente um programa, antes que o mesmo seja codificado na Linguagem Assembly do Microprocessador.
![Page 6: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/6.jpg)
Fluxograma
• Bloco de Processo• Equivalem às Instruções que realizam alguma operação do tipo:- Movimento de Dados- Operação Aritmética- Operação Lógica
Execute
• Linhas de Fluxo do Programa • Mostram a seqüência de execução das Instruções.
• Cada Bloco do Fluxograma possui apenas uma linha de Fluxo de Entrada e uma ou duas de saída
![Page 7: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/7.jpg)
Fluxograma
• Bloco de Decisão
X = 0?
V
F
• Equivale às Instruções que decidem sobre o Fluxo do Programa.
• Se a função dentro do bloco for Verdadeira(V) o programa continua abaixo, se for Falsa(F) o programa muda o fluxo.
![Page 8: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/8.jpg)
Fluxograma
• Processo Pré-definido
• Equivale às Instruções que mandam executar uma Sub-rotina armazenada em outro lugar da Memória.
• Observe que quando a sub-rotina termina, o fluxo do programa continua normalmente.
![Page 9: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/9.jpg)
Fluxograma
Início
FIM
• Bloco de Início de Programa • Bloco de Fim de Programa
• O Bloco de Início de Programa não equivale a uma Instrução específica doInstruction SET.
• O Bloco de FIM equivale a uma instrução que termina o Programa. É chamado de FIM LÓGICO do Programa.
![Page 10: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/10.jpg)
Exemplo de Fluxograma de um Programa de Microprocessador
Início
Ler o dado da Memória
Dado = 0?
Parar V
F
• O programa ao lado deve Ler um Dado da memória, verificar se é igual a zero. Se não for zero, continua em LOOP. Se for zero para o programa.
![Page 11: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/11.jpg)
Codificação Assembly
• Para Codificar um Programa escrito através de um Fluxograma, deve-se escolher o Microprocessador, ou seja, conhecer seu Conjunto de Instruções.
• Os Microcontroladores da família MCS-51 serão os dispositivos a serem aplicados nesta disciplina.
![Page 12: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/12.jpg)
Codificação Assembly do 8051
Execute
• Instruções equivalentes ao Bloco de Processo
ADD A, RnSUBB A, direct
• Instruções Aritméticas
INC A
DA A
DEC A
![Page 13: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/13.jpg)
Codificação Assembly do 8051
• Instruções equivalentes ao Bloco de Processo
Execute
• Instruções Lógicas
ANL A, Rn ORL A, direct
XRL A, #data
CLR A CPL A
RL A SWAP A
![Page 14: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/14.jpg)
Codificação Assembly do 8051
Execute
• Instruções equivalentes ao Bloco de Processo
• Instruções de Transferência de Dados
MOV A, Rn
MOVX A,@DPTR
MOVC A, @A+DPTR
PUSH direct POP direct
XCH A, Rn
![Page 15: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/15.jpg)
Codificação Assembly do 8051
X = 0?
V
F
• Instruções equivalentes ao Bloco de Decisão
JZ rel JNZ rel
CJNE A, direct, rel
JC rel JNC rel
JB bit, rel JNB bit, rel
DJNZ Rn, rel
• Instruções de Desvio
![Page 16: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/16.jpg)
Codificação Assembly do 8051
• Instruções equivalentes ao Bloco de Processo Pré-definido
LCALL addr16
• Instruções de Sub-Rotina
ACALL addr11
RET
RETI
![Page 17: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/17.jpg)
Codificação Assembly do 8051
• Instruções equivalentes a Mudança de Fluxo
• Instruções de Saltos
LJMP addr16 AJMP addr11
SJMP rel
JMP @A+DPTR
![Page 18: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/18.jpg)
Modos de Endereçamento do 8051
1. Endereçamento Imediato
• Identificado através do sinal #
• Opera sobre o dado localizado na própria instrução
• Exemplo: ADD A,#30
O dado 30 é somado ao Registrador A
![Page 19: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/19.jpg)
Modos de Endereçamento do 8051
1. Endereçamento Imediato
ADD A,#30
00
Registrador A
ADD A,#30
Registrador A
3000 + 30
![Page 20: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/20.jpg)
Modos de Endereçamento do 8051
20
00
Memória Registrador A
ADD A,#30
Programa
Registrador A
30
Operação
00 30+
ADD A,#30
30
Endereço Conteúdo
![Page 21: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/21.jpg)
Modos de Endereçamento do 8051
2. Endereçamento Direto
• Opera sobre o dado cujo endereço está na instrução
• Exemplo: ADD A,30
O dado armazenado no endereço 30 é somado ao Registrador A
![Page 22: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/22.jpg)
Modos de Endereçamento do 8051
2. Endereçamento Direto
ADD A,30
Registrador A
00
Conteúdo do Endereço 30
20
ADD A,30
2000 + 20
Registrador A
![Page 23: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/23.jpg)
Modos de Endereçamento do 8051
00
Memória Registrador A
ADD A,30
Programa
Registrador A
20
Operação
00 20+
ADD A,30
2030
Endereço Conteúdo
![Page 24: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/24.jpg)
Modos de Endereçamento do 8051
2. Endereçamento Indireto
• Opera sobre o dado cujo endereço está armazenado em um Registrador apontado na instrução
• Exemplo: ADD A,@R0
• Identificado através do sinal @
O dado armazenado no endereço apontado pelo Registrador R0 é somado ao Registrador A
![Page 25: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/25.jpg)
Modos de Endereçamento do 8051
2. Endereçamento Indireto
ADD A,@R0
Registrador A
00
Conteúdo do Endereço 30
20
ADD A,@R0
00 + 20
Registrador R030
20
Registrador A
![Page 26: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/26.jpg)
Modos de Endereçamento do 8051
00
Memória Registrador A
ADD A,@R0
Programa
Registrador A
20
Operação
00 20+
ADD A,@R0
2030
Endereço Conteúdo
Registrador R030
![Page 27: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/27.jpg)
Exemplo de um Programa Assembly do 8051
Início
Ler o dado da Memória
Dado = 0?
Parar V
F
ORG 0
LOOP:
MOV A,30H
CJNE A,#00,LOOP
AQUI: SJMP AQUI
![Page 28: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/28.jpg)
Exemplo de um Programa Assembly do 8051
ORG 0
LOOP: MOV A,30H
CJNE A,#00,LOOP
AQUI: SJMP AQUI
Mnemônicos (Programa Assembly)
Código Compilado (Opcode)
COMPILADOR
![Page 29: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/29.jpg)
Exemplo de um Programa Assembly do 8051
Memória de Programa
80
FB
00
B4
30
E5
05
04
03
02
01
00
Endereço Conteúdo
06 FE
![Page 30: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/30.jpg)
Ambiente de desenvolvimento deProgramação Assembly
PINNACLE
http://www.vaultbbs.com/pinnacle/
![Page 31: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/31.jpg)
Pinnacle
![Page 32: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/32.jpg)
Para escrever um Programa em Assembly
File New
![Page 33: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/33.jpg)
File Save
Obs: O arquivo deve ser salvo como “Nome.asm” em um diretório próximo ao raiz. O Nome deve ser curto pois o Pinnacle não lida com nomes grandes de arquivos.
![Page 34: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/34.jpg)
Exemplo de um Programa em Assembly: (Código Fonte)
![Page 35: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/35.jpg)
Para Compilar o Código Fonte e gerar o Código Objeto:
Project Compile & Link
![Page 36: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/36.jpg)
O Código Objeto é gerado no formato .HEX , no mesmo diretório do arquivo do Código Fonte.
A janela “Output” mostra se a compilação não teve erros ou em que linhas do Código Fonte existem erros.
![Page 37: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/37.jpg)
Para visualizar o Código Objeto (Programa Compilado):
View Code Memory (Disassembly)
![Page 38: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/38.jpg)
Endereço da Memória de Programa (Hexadecimal)
Conteúdo da Memória de Programa (Instruções Compiladas)
Mnemônicos das Instruções em Assembly
![Page 39: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/39.jpg)
Re-escrevendo o Programa Objeto (Compilado):
Endereço da Memória de Programa (16 Bits)
Conteúdo da Memória de Programa (8 Bits) Instruções Binárias
![Page 40: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/40.jpg)
Programa Fonte (Assembly)Formato Texto
Compilador e Linker
Programa Objeto (Código Compilado)Formato Binário
ORG 0 Origem do Programa Objeto na Posição 0000 da Memória de Programa
A primeira Instrução do Programa (CLR A) cujo código binário é (E4) será armazenada na Posição 0000 da Memória de Programa.
??? Qual o código binário da segunda Instrução do Programa e onde ele está armezenado???
![Page 41: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/41.jpg)
A segunda Instrução é: JB P1.0,$
Que será armazenada a partir da segunda Posição da Memória de Programa (Endereço 0001)
Como esta Instrução é codificada usando 3 Bytes (20 90 FD), e cada posição de memória armazena apenas um Byte, ela será armazenada nas Posições 0001 0002 0003
??? Qual o código binário da segunda Instrução do Programa e onde ele está armezenado???
![Page 42: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/42.jpg)
Observando-se o Programa Fonte e os Códigos gerados pelo Compilador/Linker do Pinnacle, a última Instrução (RET) tem Código Binário 22 e ocupa a Posição 0013 da Memória de Programa.
• Após a última Instrução, do endereço 0014 em diante, a Memória de Programa contém 00.
• Na prática, ela pode conter resíduo de outros programas gravados anteriormente.
![Page 43: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/43.jpg)
Este programa exemplo ocupa 20 Bytes da Memória de Programa, ou seja, o Tamanho deste programa é de 20 Bytes.
0013(hexa) = 20 (decimal)
20 Bytes
20 Bytes
![Page 44: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/44.jpg)
Exemplo:
Campo do Rótulo (Label)
![Page 45: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/45.jpg)
Exemplo:
Campo da Operação (Mnemônicos)
![Page 46: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/46.jpg)
Exemplo:
Campo do Operando
![Page 47: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/47.jpg)
Exemplo:
Campo do Comentário
![Page 48: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/48.jpg)
Exemplo:
![Page 49: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/49.jpg)
![Page 50: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/50.jpg)
![Page 51: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/51.jpg)
São utilizadas para complementar as informações que permitam a montagem efetiva do programa.
•Indicar o Endereço Inicial do Programa.
•Reservar área de Dados
•Definir equivalência entre valores
•Etc…
![Page 52: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/52.jpg)
Principais Diretivas:
![Page 53: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/53.jpg)
Principais Diretivas:
Exemplo:
Armazena na posição 0010h da Memória de Programa, o Byte 05h e na posição seguinte(0011h) o Byte CFh
![Page 54: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/54.jpg)
Principais Diretivas:
![Page 55: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/55.jpg)
Principais Diretivas:
![Page 56: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/56.jpg)
Principais Diretivas:
• A Variável só pode receber um único valor.
• O valor pode ser um valor numérico ou uma expressão.
• Atribui um valor (value) à uma Variável (Variable).
• A diretiva EQU e o sinal = são sinônimos e podem ser usadas para atribuir um valor específico à Variável.
• Uma vez declarado o valor da variável este não poderá mudar.
![Page 57: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/57.jpg)
Principais Diretivas:
Exemplo:
ORG 0
Controle EQU 10h ; atribui 10h à variável Controle
Controle2 = 20h ; atribui 20h à variável Controle2
MOV A, #Controle ; o Acumulador = 10h
![Page 58: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/58.jpg)
![Page 59: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/59.jpg)
![Page 60: SEL-433 Aplicação de Microprocessadores Iiris.sel.eesc.usp.br/sel433/Aula3-P.pdf · RL A SWAP A. Codificação Assembly do 8051 Execute • Instruções equivalentes ao Bloco de](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2c71a5fe52923b6f3e9d39/html5/thumbnails/60.jpg)