Curso de Assembly
Níveis de programação
Você está em: MarMSX >> Cursos >> Assembly Z80
O Assembly apesar de ser a linguagem de menor nível para os 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);
- Nível 1 - Nível de microprogramação;
- Nível 2 - Nível de máquina convencional (Assembly);
- Nível 3 - Nível de sistema operacional;
- Nível 4 - Nível de linguagem de montagem (Assembler);
- Nível 5 - Nível de linguagem orientada para problemas (Basic, Pascal, C, etc).
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 nível 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:
- Controlar a execução dos programas do usuário.
- Prover uma arquitetura que facilite a programação (abstração da camada de hardware).
- Fazer uso do hardware de forma eficiente.
- Gerenciar diferentes recursos (CPU, memória, disco, ...,).
- Melhorar a performance do computador (tempo de resposta, throughput)
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ências:
[1] - Organização Estruturada de Computadores - Andrew S. Tanenbaum, Editora Pentice Hall do Brasil.