Embedded Systems
  • Microcontroladores e Sistemas Embarcados
  • Introdução aos sistemas embarcados
  • Sistemas Microcontrolados
    • Visão geral da organização de um sistema computacional
    • Modelos de Arquitetura
    • Estrutura básica de um microcontrolador genérico
  • Periféricos Mapeados em Memória
    • Configuração de Registradores
  • Programação
    • Programação em Linguagem de Montagem
    • Compilação
  • Intel MSC-51
    • Arquitetura e Organização do 8051
    • Características Gerais de Operação
    • Mapa de Memória
    • Conjunto de Instruções e Modos de Endereçamento
    • Interrupções
    • Portas de Entradas/Saídas Digitais
    • Módulo Contador/Temporizador
    • Comunicação Serial Assíncrona
  • Processadores Cortex-M0+
    • Arquitetura
    • Sistema de interconexão
    • Arquitetura do Conjunto de Instruções (ISA)
    • Modos de operação
    • Programação
      • Keil uVision
  • Freedom Board: KL25Z
    • Família de microcontroladores KL25Z
    • Terminais do microcontrolador
    • Interface de configuração
    • Programação
      • Keil uVision
      • Chamada de funções em Assembly
      • Configuração de Registradores em C
      • Utilizando o CMSIS nas aplicações
  • Dicionário
  • Apêndice A: Sistemas de Numeração
  • [Em desenvolvimento] Apêndice B: Números Sinalizados
Powered by GitBook
On this page
  1. Programação

Programação em Linguagem de Montagem

PreviousProgramaçãoNextCompilação

Last updated 7 years ago

CtrlK
  • Programa: Instruções e dados
  • Estrutura básica de um programa em Assembly
  • Referências

De acordo com Patterson e Hennessy [1], a linguagem que um computador entende é chamada de instruções e seu vocabulário é denominado conjunto de instruções.

Instruções indicam as operações que são executadas e os operandos utilizados. Além disso, as instruções são codificadas como números binários e são armazenadas na memória principal. Assim, o formato armazenado na memória é chamado de linguagem de máquina, já sua representação simbólica é chamada de linguagem de montagem ou Assembly [2].

Programa: Instruções e dados

Um programa é essencialmente uma série de instruções gravadas em memória. O desenvolvimento dos programas em Assembly consiste na declaração dessas instruções e da utilização de um montador para convertê-las para linguagem de máquina. Para tal, o programa em Assembly contém diretivas que especificam parâmetros ao montador (Assembler), isto é, são comandos passados para o montador e que não são convertidos em linguagem de máquina.

Cabe ressaltar que o desenvolvimento de um programa depende da ferramenta utilizada, isto é, do Assembler.

Estrutura básica de um programa em Assembly

Geralmente, uma linha de um programa em Assembly possui:

  • Label: Pode ser utilizado para nomear a linha do código de contém a instrução indicada;

  • Mnemônico: É o nome da instrução;

  • Operandos: São informações utilizadas na execução de uma instrução. Cabe ressaltar que algumas instruções não possuem operandos;

  • Comentários: São opcionais.

A seguir é mostrado um exemplo do e programa para o 8051 compatível com a ferramenta C51ASM.

        ORG 0 ; endereço inicial do programa
        SJMP INICIO ; salta para INICIO
        ORG 13H ; endereço reservado (interrupção externa 1)
        SJMP ROTINA ; salta para ROTINA
INICIO:
        MOV TCON, #04H ; configura a interrupção externa 1 (borda de descida no pino INT1)
        MOV IE, #84H ; habilita interrupção externa 1
        SJMP $ ; espera (LOOP)

ROTINA: ; Rotina de interrupção
        ; Código da rotina de interrupção
        RETI ; retorno da rotina interrupção

        END ; fim do programa

Referências

[1] PATTERSON. D. A.; HENNESSY. J. L. Computer Organization and Design: The Hardware/Software Interface 5th Edition. Morgan Kaufmann-Elsevier. 2013.

[2] HARRIS. D. M; HARRIS. S. L. Digital Design and Computer Architecture. Elsevier. 2012.