Código da máquina

O código da máquina é um programa de computador escrito em linguagem de máquina. Ele usa o conjunto de instruções de uma determinada arquitetura de computador. Geralmente é escrito em binário. O código de máquina é o nível mais baixo de software. Outras linguagens de programação são traduzidas em código de máquina para que o computador possa executá-las.

Uma instrução diz ao processo qual a operação a ser realizada. Cada instrução é composta de um código opcode (código de operação) e operando(s). Os operandos são geralmente endereços ou dados de memória. Um conjunto de instruções é uma lista dos opcodes disponíveis para um computador. Código de máquina é o código de montagem e outras linguagens de programação que são compiladas ou interpretadas como.

Os construtores de programas transformam o código em outro idioma ou código de máquina. O código da máquina é às vezes chamado código nativo. Isto é usado quando se fala de coisas que funcionam apenas em alguns computadores.

Código da máquina de escrever

O código da máquina pode ser escrito de diferentes formas:

  • Usando uma série de interruptores. Isto gera uma seqüência de 1 e 0. Isto foi usado nos primeiros dias de computação. Desde os anos 70, ele não é mais utilizado.
  • Usando um editorHex. Isto permite o uso de opcodes em vez do número do comando.
  • Usando um Assembler. As linguagens de montagem são mais simples que os opcodes. Sua sintaxe é mais fácil de entender do que a linguagem de máquina, mas mais difícil do que a linguagem de alto nível. O assembler traduzirá o código fonte em código de máquina por si só.
  • O uso de uma linguagem de programação de alto nível permite programas que utilizam código mais fácil de ler e escrever. Estes programas são traduzidos em código de máquina. A tradução pode acontecer em muitas etapas. Os programas Java são primeiramente otimizados em bytecode. Depois é traduzido para a linguagem de máquina quando é usado.
Painel frontal de um minicomputador precoce, com interruptores para inserção do código da máquinaZoom
Painel frontal de um minicomputador precoce, com interruptores para inserção do código da máquina

Instruções típicas do código da máquina

Há muitos tipos de instruções encontradas normalmente em um conjunto de instruções:

  • Operações aritméticas: Adição, subtração, multiplicação, divisão.
  • Operações lógicas: Conjunção, disjunção, negação.
  • Operações atuando em bits simples: Deslocando bits para a esquerda ou para a direita.
  • Operações que atuam na memória: cópia de um valor de um registro para outro.
  • Operações que comparam dois valores: maiores que, menores que, iguais.
  • Operações que combinam outras operações: adicionar, comparar e copiar se for igual a algum valor (como uma operação), saltar para algum ponto do programa se um registro for zero.
  • Operações que atuam no fluxo do programa: pular para algum endereço.
  • Operações que convertem tipos de dados: por exemplo, converter um inteiro de 32 bits para um inteiro de 64 bits, converter um valor de ponto flutuante para um inteiro (por truncatura).

Muitos processadores modernos usam microcódigos para alguns dos comandos. Comandos mais complexos tendem a usá-lo. Isto é freqüentemente feito com arquiteturas CISC.

Instruções

Cada processador ou família de processadores tem seu próprio conjunto de instruções. As instruções são padrões de bits que correspondem a diferentes comandos que podem ser dados à máquina. Assim, o conjunto de instruções é específico para uma classe de processadores que utilizam (em sua maioria) a mesma arquitetura.

Os projetos de processadores mais recentes geralmente incluem todas as instruções de um antecessor e podem acrescentar instruções adicionais. Algumas vezes, um projeto mais novo interromperá ou alterará o significado de um código de instrução (normalmente porque é necessário para novos propósitos), afetando a compatibilidade do código; mesmo processadores quase completamente compatíveis podem apresentar comportamento ligeiramente diferente para algumas instruções, mas isto raramente é um problema.

Os sistemas também podem diferir em outros detalhes, tais como arranjo de memória, sistemas operacionais ou dispositivos periféricos. Como um programa normalmente depende de tais fatores, sistemas diferentes normalmente não executam o mesmo código de máquina, mesmo quando o mesmo tipo de processador é usado.

A maioria das instruções tem um ou mais campos de código opcode. Eles especificam o tipo de instrução básica. Outros campos podem dar o tipo dos operandos, o modo de endereçamento, e assim por diante. Também pode haver instruções especiais que estão contidas no próprio opcode. Estas instruções são chamadas de imediatas.

Os projetos dos processadores podem ser diferentes de outras formas. Instruções diferentes podem ter comprimentos diferentes. Além disso, elas podem ter o mesmo comprimento. Ter todas as instruções com o mesmo comprimento pode simplificar o projeto.

Exemplo

A arquitetura MIPS tem instruções que têm 32 bits de comprimento. Esta seção tem exemplos de código. O tipo geral de instrução está no campo op (operação). É o mais alto 6 bits. As instruções do tipo J (salto) e I (imediato) são totalmente dadas por op. As instruções do tipo R (registro) incluem o funct do campo. Ela determina a operação exata do código. Os campos usados nestes tipos são:

    6       5      5      5    5       6 bits [ op | rs | rt | rd |shamt| funct] Tipo R [ op | rs | rt | endereço/imediato] tipo I [ op | endereço                 alvo ] tipo J

rs, rt, e rd indicam operandos de registro. shamt dá uma quantidade de turno. O endereço ou os campos imediatos contêm um operando diretamente.

Exemplo: adicionar os registros 1 e 2. Colocar o resultado no registro 6. Ele é codificado:

rs | rt | rd |shamt| funct]      0      1      2      6      0      32      decimal 000000 00001 00010 00110 00000 100000    binário

Carregar um valor no registro 8. Retire-o da célula de memória 68 células após o local listado no registro 3:

rs | rs | rt | endereço/imediato]     35      3      8            68            decimal 100011 00011 01000 00000 00001 000100    binário

Saltar para o endereço 1024:

     2                  1024                decimal 000010 00000 00000 00000 00000 10000 000000                    binário

Páginas relacionadas

  • Sistema de numeração binária
  • Computadores Quantum
  • Conjunto de instruções
  • Computador com conjunto de instruções reduzido

Perguntas e Respostas

P: O que é código de máquina?


R: Código de máquina é um programa de computador escrito em linguagem de máquina, usando o conjunto de instruções de uma arquitetura de computador específica e geralmente escrito em binário.

P: Qual é o nível mais baixo de software?


R: O código de máquina é o nível mais baixo de software.

P: Como outras linguagens de programação são executadas pelos computadores?


R: Outras linguagens de programação são traduzidas em código de máquina, que o computador pode executar.

P: Em que consiste uma instrução em código de máquina?


R: Uma instrução em código de máquina consiste em um opcode (código de operação) e operando(s). Os operandos geralmente são endereços de memória ou dados.

P: O que é um conjunto de instruções?


R: Um conjunto de instruções é uma lista dos opcodes disponíveis para um computador.

P: O que os criadores de programas fazem com o código?


R: Os criadores de programas transformam o código em outra linguagem ou código de máquina.

P: Qual é outro nome para código de máquina?


R: Às vezes, o código de máquina é chamado de código nativo, usado quando se fala de coisas que funcionam apenas em alguns computadores.

AlegsaOnline.com - 2020 / 2023 - License CC3