Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Programação do microprocessador


O “vocabulário” de instruções que qualquer chip microprocessador particular possui é específico para aquele modelo de chip. Um Intel 80386, por exemplo, usa um conjunto de códigos binários completamente diferente do Motorola 68020, para designar funções equivalentes.

Infelizmente, não existem padrões em vigor para as instruções do microprocessador. Isso torna a programação no nível mais baixo muito confusa e especializada.

Quando um programador humano desenvolve um conjunto de instruções para dizer diretamente a um microprocessador como fazer algo (como controlar automaticamente a taxa de injeção de combustível para um motor), eles estão programando na própria "linguagem" da CPU. Esta linguagem, que consiste nos mesmos códigos binários que a unidade de controle dentro do chip da CPU decodifica para realizar tarefas, é freqüentemente chamada de linguagem de máquina .

Embora o software de linguagem de máquina possa ser “redigido” em notação binária, geralmente é escrito na forma hexadecimal, porque é mais fácil para os seres humanos trabalharem com ele. Por exemplo, apresentarei apenas alguns dos códigos de instrução comuns para o chip microprocessador Intel 8080:


 Descrição da instrução binária hexadecimal ----------- -------- ------------------------------- ---------- | 7B 01111011 Mova o conteúdo do registro A para o registro E | | 87 10000111 Adicionar conteúdo do registro A ao registro D | | 1C 00011100 Incrementa o conteúdo do registro E em 1 | | D3 11010011 Byte de saída de dados para o barramento de dados 



Mesmo com a notação hexadecimal, essas instruções podem ser facilmente confundidas e esquecidas. Para este propósito, existe outra ajuda para programadores chamada linguagem assembly .

Com a linguagem assembly, palavras mnemônicas de duas a quatro letras são usadas no lugar do código hexadecimal ou binário real para descrever as etapas do programa. Por exemplo, a instrução 7B para o Intel 8080 seria “ MOV A, E ”Em linguagem assembly.

Os mnemônicos, é claro, são inúteis para o microprocessador, que só pode entender códigos binários, mas é uma forma conveniente para os programadores gerenciarem a escrita de seus programas em papel ou editor de texto (processador de texto). Existem até programas escritos para computadores chamados montadores que entendem esses mnemônicos, traduzindo-os para os códigos binários apropriados para um microprocessador de destino especificado, de modo que o programador possa escrever um programa na linguagem nativa do computador sem nunca ter que lidar com hex estranho ou notação de código binário entediante.

Depois que um programa é desenvolvido por uma pessoa, ele deve ser gravado na memória antes que um microprocessador possa executá-lo. Se o programa deve ser armazenado em ROM (o que alguns são), isso pode ser feito com uma máquina especial chamada de programador de ROM , ou (se você for masoquista), conectando o chip ROM em uma placa de ensaio, energizando-o com as tensões apropriadas e gravando dados fazendo as conexões de fio corretas para o endereço e as linhas de dados, um de cada vez, para cada instrução.

Se o programa for armazenado na memória volátil, como a memória RAM do computador operacional, pode haver uma maneira de digitá-lo à mão por meio do teclado desse computador (alguns computadores têm um mini-programa armazenado na ROM que informa ao microprocessador como aceitar pressionamentos de tecla de um teclado e armazená-los como comandos na RAM), mesmo que seja muito burro para fazer qualquer outra coisa.

Muitos kits de computador “hobby” funcionam assim. Se o computador a ser programado for um computador pessoal totalmente funcional com um sistema operacional, unidades de disco e tudo mais, você pode simplesmente comandar o montador para armazenar seu programa concluído em um disco para recuperação posterior.

Para “executar” o seu programa, você simplesmente digitaria o nome do arquivo do programa no prompt, pressione a tecla Enter e o registro do contador do programa do microprocessador seria definido para apontar para o local (“endereço”) no disco onde está a primeira instrução armazenado, e seu programa seria executado a partir daí.

Embora a programação em linguagem de máquina ou linguagem assembly torne os programas rápidos e altamente eficientes, leva muito tempo e habilidade para fazer isso, exceto para as tarefas mais simples, porque cada instrução em linguagem de máquina é muito grosseira. A resposta para isso é desenvolver maneiras para os programadores escreverem em linguagens de “alto nível”, que possam expressar o pensamento humano com mais eficiência. Em vez de digitar dezenas de códigos enigmáticos de linguagem assembly, um programador que escrevesse em uma linguagem de alto nível seria capaz de escrever algo assim. . .
 Imprima "Olá, mundo!" 

. . . e espere que o computador imprima “Olá, mundo!” sem mais instruções sobre como fazer isso. Esta é uma ótima ideia, mas como um microprocessador entende esse pensamento “humano” quando seu vocabulário é tão limitado?

A resposta vem em duas formas diferentes: interpretação , ou compilação . Assim como duas pessoas falando línguas diferentes, deve haver alguma maneira de transcender a barreira do idioma para que eles conversem.

É necessário um tradutor para traduzir as palavras de cada pessoa para o idioma da outra, uma de cada vez. Para o microprocessador, isso significa outro programa, escrito por outro programador em linguagem de máquina, que reconhece os padrões de caracteres ASCII de comandos de alto nível, como Imprimir (Imprimir) e pode traduzi-los nas etapas necessárias de tamanho mínimo que o microprocessador pode diretamente Compreendo.

Se essa tradução for feita durante a execução do programa, assim como um tradutor intervindo entre duas pessoas em uma conversa ao vivo, é chamada de "interpretação". Por outro lado, se todo o programa for traduzido para a linguagem de máquina de uma só vez, como um tradutor registrando um monólogo no papel e, em seguida, traduzindo todas as palavras de uma só vez em um documento escrito no outro idioma, o processo é chamado de “ compilação."

A interpretação é simples, mas torna o programa de execução lenta porque o microprocessador tem que traduzir continuamente o programa entre as etapas, e isso leva tempo. A compilação leva tempo inicialmente para traduzir todo o programa em código de máquina, mas o código de máquina resultante não precisa de tradução depois disso e é executado mais rápido como consequência.

Linguagens de programação como BASIC e FORTH são interpretadas. Linguagens como C, C ++, FORTRAN e PASCAL são compiladas. As linguagens compiladas são geralmente consideradas as preferidas dos programadores profissionais, devido à eficiência do produto final.

Naturalmente, como os vocabulários da linguagem de máquina variam amplamente de microprocessador para microprocessador, e como as linguagens de alto nível são projetadas para serem o mais universais possível, os programas de interpretação e compilação necessários para a tradução da linguagem devem ser específicos do microprocessador.

O desenvolvimento desses intérpretes e compiladores é uma façanha impressionante:as pessoas que fazem esses programas definitivamente ganham seu sustento, especialmente quando você considera o trabalho que devem fazer para manter seu produto de software atualizado com os modelos de microprocessador em rápida mudança que aparecem no mercado !

Para atenuar essa dificuldade, os fabricantes de chips de microprocessador que definem tendências (principalmente Intel e Motorola) tentam projetar seus novos produtos para serem compatíveis com versões anteriores com seus produtos mais antigos. Por exemplo, todo o conjunto de instruções para o chip Intel 80386 está contido nos chips Pentium IV mais recentes, embora os chips Pentium tenham instruções adicionais que faltam nos chips 80386.

O que isso significa é que programas em linguagem de máquina (compiladores também) escritos para computadores 80386 serão executados na melhor e mais recente CPU Intel Pentium IV, mas programas em linguagem de máquina escritos especificamente para tirar proveito do conjunto maior de instruções do Pentium não funcionarão um 80386, porque a CPU mais antiga simplesmente não tem algumas dessas instruções em seu vocabulário:a unidade de controle dentro do 80386 não pode decodificá-las.

Com base nesse tema, a maioria dos compiladores possui configurações que permitem ao programador selecionar para qual tipo de CPU ele deseja compilar o código em linguagem de máquina. Se eles selecionarem a configuração 80386, o compilador executará a tradução usando apenas as instruções conhecidas pelo chip 80386; se eles selecionarem a configuração do Pentium, o compilador estará livre para fazer uso de todas as instruções conhecidas pelos Pentiums.

Isso é análogo a dizer a um tradutor qual será o nível mínimo de leitura de seu público:um documento traduzido para uma criança será compreensível para um adulto, mas um documento traduzido para um adulto pode muito bem ser um jargão para uma criança.



PLANILHA RELACIONADA:

Tecnologia industrial

  1. As 10 melhores linguagens de programação em nuvem
  2. Operadores de programação C
  3. Linguagem de Programação C PDF:Tutorial Básico para Iniciantes
  4. Bosque:a nova linguagem de programação da Microsoft sem loops
  5. 9 Novas linguagens de programação para aprender em 2021
  6. C Tutorial
  7. Linguagem C - Visão geral
  8. C - Estrutura do Programa
  9. C# - Visão geral
  10. Heidenhain lança programa de treinamento CNC on-line