Níveis de programação

  O Assembly apesar de ser a linguagem de menor nível para oss usuários, não é a de menor nível dentro de um computador. Os níveis de linguagem são[1]:



  Nível 0 - Nível de lógica digital (hardware)

  O que consiste o nível de lógica digital? São os circuitos eletrônicos do processador, baseados em portas digitais. As porta digitais são funções de entrada e saída de dados, baseadas nas operações lógicas AND e OR.
  A seguir, o esquema do circuito do Z80, que exemplifica bem o nível 0.



  Nível 1 - Nível de microprogramação

  Este é o verdadeiro nível de linguagem de máquina[1]. É o menor nível de programação, onde o código é chamado de microprogramação.
  O objetivo nesse nível é controlar todo o fluxo de dados e operações no circuito de nível 0, visando simplificar a programação no nível 2.
  Assim, o microprograma interpreta o código do nível 2 (Assembly) e realiza todos os procedimentos necessários para cada instrução daquele nível.
  Por exemplo, a instrução em nível 2 de Z80, LD reg1,reg2, realiza uma série de procedimentos no circuito apresentado no nível 0, de forma a copiar o conteúdo do registrador reg2 para o registrador reg1. Esses procedimentos são transparentes (não notados) para o programador de nível 2.
  O microprograma está inserido no processador e não pode ser modificado.


  Nível 2 - Nível de máquina convencional (Assembly)

  É o nível de máquina ao qual os programadores têm acesso e o foco desse curso. É o nível de programação mais baixo para os programadores, e é também o nível no qual os fabricantes dos processadores fornecem o manual de linguagem de máquina.
  O objetivo aqui é realizar cálculos e procedimentos diretamente no processador.


  Nível 3 - Nível de sistema operacional

  São programas em nivel 2, cuja a finalidade é servir como um intermediário entre o programador e o hardware (não mais só o processador, mas toda a máquina).
  Objetivos:   No caso do MSX, temos o MSX-DOS e as sub-rotinas da ROM como exemplos de nível 3.
  Um bom exemplo de um programa de nível 3 é quando mandamos salvar um programa qualquer. O programa deve localizar o drive, verificar se existe espaço livre no disco, onde irá gravar os dados, enviar os dados e sinalizar a conclusão. A sub-rotina de gravação já está pronta na ROM do disk-drive, bastando apenas enviar os dados necessários para o funcionamento dela, sem ter que se preocupar com todos aqueles procedimentos de gravação.


  Nível 4 - Nível de linguagem de montagem (Assembler)

  O objetivo desse nível é interpretar ou compilar uma linguagem de nível 5.
  Converte uma linguagem natural (nível 5) para a linguagem de máquina (nível 2).


  Nível 5 - Nível de linguagem orientada para problemas (Basic, Pascal, C, etc)

  É o nível de linguagem mais parecido com a linguagem humana. Foi criada com o objetivo de ser mais fácil de compreender e programar.
  Enquanto no nível 2 o programador tem que se preocupar em que lugar da memória o programa deverá se localizar, bem como gerenciar pilhas, memória etc, no nível 5, isso tudo é transparente.
  Na linguagem Basic, por exemplo, o programador cria o programa como uma lista. Já o interpretador Basic se encarrega de colocar o programa na memória, bem como alocar variáveis na memória, gerenciar espaços etc.



  Referência:

  [1] - Organização Estruturada de Computadores - Andrew S. Tanenbaum, Editora Pentice Hall do Brasil.


CURSOS/ASSEMBLY/AULA2