Programas simples de linguagem assembly 8086 com explicação

Experimente Nosso Instrumento Para Eliminar Problemas





A programação de nível de montagem é muito importante para baixo nível sistema embarcado o design é usado para acessar as instruções do processador para manipular o hardware. É uma linguagem de nível de máquina mais primitiva usada para fazer código eficiente que consome menos número de ciclos de clock e leva menos memória em comparação com o linguagem de programação de alto nível . É uma linguagem de programação orientada a hardware completa para escrever um programa que o programador deve estar ciente de hardware embutido. Aqui, estamos fornecendo os fundamentos da programação de nível de montagem 8086.

Programação em nível de montagem 8086

Programação em nível de montagem 8086



Programação em nível de montagem 8086

O linguagem de programação assembly é uma linguagem de baixo nível desenvolvida usando mnemônicos. O microcontrolador ou microprocessador pode entender apenas a linguagem binária como 0 ou 1, portanto, o montador converte a linguagem assembly em linguagem binária e armazena-a na memória para realizar as tarefas. Antes de escrever o programa, os designers embarcados devem ter conhecimento suficiente sobre o hardware específico do controlador ou processador, portanto, primeiro precisamos conhecer o hardware do processador 8086.


Hardware do processador

Hardware do processador



Arquitetura do processador 8086

O 8086 é um processador representado por todos os dispositivos periféricos, como barramento serial e RAM e ROM, dispositivos de E / S e assim por diante, todos externamente conectados à CPU por meio de um barramento de sistema. O microprocessador 8086 tem Arquitetura baseada em CISC , e tem periféricos como 32 I / O, Comunicação em série , memórias e contadores / temporizadores . O microprocessador requer um programa para realizar as operações que requerem uma memória para ler e salvar as funções.

Arquitetura do processador 8086

Arquitetura do processador 8086

A programação de nível de montagem 8086 é baseada nos registros de memória. Um registro é a parte principal do microprocessadores e controladores que estão localizados na memória que fornecem uma maneira mais rápida de coletar e armazenar os dados. Se quisermos manipular dados para um processador ou controlador realizando multiplicação, adição, etc., não podemos fazer isso diretamente na memória onde precisamos de registros para processar e armazenar os dados. O microprocessador 8086 contém vários tipos de registros que podem ser classificados de acordo com suas instruções, como

Registros de uso geral : A CPU 8086 consistiu em 8 registros de propósito geral e cada registro tem seu próprio nome, conforme mostrado na figura, como AX, BX, CX, DX, SI, DI, BP, SP. Todos esses são registradores de 16 bits, onde quatro registradores são divididos em duas partes, como AX, BX, CX e DX, que são usados ​​principalmente para manter os números.

Registros de propósito especial : A CPU do 8086 consiste em 2 registros de função especial, como IP e registros de sinalização. O registro IP aponta para a instrução em execução atual e sempre funciona para se reunir com o registro de segmento CS. A principal função dos registradores de sinalização é modificar as operações da CPU após as funções mecânicas serem concluídas e não pudermos acessar diretamente
Registradores de segmento: A CPU 8086 consistiu em registros de 4 segmentos, como CS, DS, ES, SS, que são usados ​​principalmente para possível armazenar qualquer dado nos registros de segmento e podemos acessar um bloco de memória usando registradores de segmento.


Programas Simple Assembly Language 8086

A programação em linguagem assembly 8086 tem algumas regras, como

  • O nível de montagem programação 8086 o código deve ser escrito em letras maiúsculas
  • Os rótulos devem ser seguidos por dois pontos, por exemplo: rótulo:
  • Todos os rótulos e símbolos devem começar com uma letra
  • Todos os comentários são digitados em minúsculas
  • A última linha do programa deve ser encerrada com a diretiva END

Os processadores 8086 têm duas outras instruções para acessar os dados, como WORD PTR - para palavra (dois bytes), BYTE PTR - para byte.

Op-Code e Operand

Op-Code e Operand

Código de operação: Uma única instrução é chamada como um código operacional que pode ser executado pela CPU. Aqui, a instrução 'MOV' é chamada de código operacional.

Operandos: Dados de peça única são chamados de operandos que podem ser operados pelo código operacional. Exemplo, a operação de subtração é realizada pelos operandos que são subtraídos pelo operando.
Sintaxe: SUB b, c

Programas em linguagem assembly do microprocessador 8086

Escreva um programa para ler um caractere no teclado

MOV ah, 1h // subprograma de entrada do teclado
INT 21h // entrada de caracteres
// personagem é armazenado em al
MOV c, al // copia caractere de alto c

Escreva um programa para ler e exibir um personagem

MOV ah, 1h // subprograma de entrada do teclado
INT 21h // ler caractere em al
MOV dl, al // copia caractere para dl
MOV ah, 2h // subprograma de saída de caracteres
INT 21h // exibe caractere em dl

Escreva um programa usando registros de uso geral

ORG 100h
MOV AL, VAR1 // verifica o valor de VAR1 movendo-o para AL.
LEA BX, VAR1 // obtém o endereço de VAR1 em BX.
MOV BYTE PTR [BX], 44h // modifica o conteúdo de VAR1.
MOV AL, VAR1 // verifica o valor de VAR1 movendo-o para AL.
DIREITA
VAR1 DB 22h
FIM

Escreva um programa para exibir a string usando funções de biblioteca

incluir emu8086.inc // Declaração de macro
ORG 100h
IMPRIMA ‘Olá, mundo!’
GOTOXY 10, 5
PUTC 65 // 65 - é um código ASCII para ‘A’
PUTC ‘B’
RET // retorna ao sistema operacional.
END // diretiva para parar o compilador.

Instruções aritméticas e lógicas

Os processos do 8086 de unidade aritmética e lógica foram separados em três grupos, como adição, divisão e operação de incremento. A maioria Instruções aritméticas e lógicas afetam o registro de status do processador.

Os mnemônicos de programação em linguagem assembly 8086 estão na forma de op-code, como MOV, MUL, JMP e assim por diante, que são usados ​​para realizar as operações. Exemplos de programação em linguagem assembly 8086

Adição
ORG0000h
MOV DX, # 07H // mova o valor 7 para o registrador AX //
MOV AX, # 09H // mova o valor 9 para o acumulador AX //
Adicionar AX, 00H // adicionar valor CX com valor R0 e armazenar o resultado em AX //
FIM
Multiplicação
ORG0000h
MOV DX, # 04H // mova o valor 4 para o registrador DX //
MOV AX, # 08H // move o valor 8 para o acumulador AX //
MUL AX, 06H // O resultado multiplicado é armazenado no Acumulador AX //
FIM
Subtração
ORG 0000h
MOV DX, # 02H // mova o valor 2 para registrar DX //
MOV AX, # 08H // move o valor 8 para o acumulador AX //
SUBB AX, 09H // O valor do resultado é armazenado no acumulador A X //
FIM
Divisão
ORG 0000h
MOV DX, # 08H // mova o valor 3 para registrar DX //
MOV AX, # 19H // move o valor 5 para o acumulador AX //
DIV AX, 08H // valor final é armazenado no Acumulador AX //
FIM

Portanto, é tudo sobre Programação em nível de montagem 8086, 8086 Processor Architecture exemplos de programas simples para processadores 8086, instruções aritméticas e lógicas. Além disso, qualquer dúvida sobre este artigo ou projetos eletrônicos, você pode entrar em contato conosco comentando na seção de comentários abaixo.