Instrução (informática)

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa

Em ciência da computação, uma instrução é uma operação única executada por um processador e definida por um conjunto de instruções. Num sentido amplo, uma "instrução" pode ser qualquer representação de um elemento num programa executável, tal como um bytecode.

Em arquiteturas tradicionais, uma instrução inclui um opcode especificando a operação a ser realizada, tal como "some o conteúdo da memória ao registrador", e zero ou mais especificadores de operando, que podem especificar registradores, endereços de memória ou dados literais. Os especificadores de operando podem ter modos de endereçamento determinando seus significados ou podem ter um uso fixo.

Em arquiteturas VLIW, as quais incluem muitas arquiteturas de microcódigo, operações simultâneas múltiplas e operandos são especificadas numa única instrução.

O tamanho ou comprimento duma instrução varia amplamente, desde quatro bits em alguns microcontroladores a muitas centenas de bits em alguns sistemas VLIW. A maioria dos processadores modernos usados em computadores pessoais, mainframes e supercomputadores possuem instruções com tamanhos entre 16 e 64 bits. Em algumas arquiteturas, principalmente na maioria dos RISCs, instruções possuem um tamanho fixo, correspondendo tipicamente a do tamanho da palavra nesta arquitetura. Em outras arquiteturas, instruções possuem comprimento variável, tipicamente múltiplos integrais de um byte ou duma halfword.

As instruções que constituem um programa raramente são especificadas usando sua forma numérica interna; podem ser especificadas por programadores usando assembler ou, mais comumente, podem ser geradas por compiladores.

Instrução também pode ser um termo usado para as unidades sintáticas de uma linguagem de programação imperativa que expressam alguma ação a ser executada. Um programa é formado por uma sequência de uma ou mais instruções. Estas instruções podem ter componentes internos, como expressões.

Muitas linguagens imperativas, como o C, fazem distinção entre instruções e definições, onde instruções contém apenas código executável e as definições instanciam identificadores.

Exemplos de instruções[editar | editar código-fonte]

A seguir, alguns exemplos dos tipos mais genéricos de instruções, em algumas linguagens imperativas como Pascal, C e Fortran.

Instruções Simples[editar | editar código-fonte]

  • Declaração
    • em C: assert(ptr != NULL);
  • Atribuição
    • em Pascal: A := A + 5
    • em C e Fortran: A = A + 5
  • goto
    • em Fortran: goto label;
  • return
    • em C, Pascal e Fortran: return value;
  • chamada
    • em C e Pascal: CLEARSCREEN()
    • em Fortran: call CLEARSCREEN()

Instruções compostas[editar | editar código-fonte]

  • bloco:
    • em Pascal: begin ... end
    • em C: { ... }
  • loop do-while: do { computation(&i); } while (i < 10);
  • loop for: for A := 1 to 10 do WRITELN(A) end
  • instrução if: if A > 3 then WRITELN(A) else WRITELN("NOT YET"); end
  • instrução switch-case: switch (c) { case 'a': alert(); break; case 'q': quit(); break; }
  • loop while: while NOT EOF do begin READLN end
  • isntrução with: with open(filename) as f: use(f)

Sintaxe[editar | editar código-fonte]

A aparência das instruções modela os programas. Linguagens de programação são caracterizadas pelo tipo de instruções que usam. Muitas instruções são introduzidas por identificadores como if, while, ou repeat. Na maioria das vezes, as palavras chave das instruções são reservadas, portanto, não podem ser usadas como nomes de variáveis ou funções. Linguagens imperativas usam sintaxe especial para cada instrução, o que as torna bem diferentes de chamadas de funções. Métodos comuns para descrever a sintaxe de instruções são a forma de Backus-Naur e diagramas de sintaxe.

Semântica[editar | editar código-fonte]

Semanticamente, muitas instruções diferem de chamadas de subrotinas pela sua manipulação de parâmetros. Usualmente, um parâmetro de subrotina é avaliado uma vez antes da subrotina ser chamada. Isso difere de muitos parâmetros de instruções, que podem ser verificados várias vezes (como num loop while, por exemplo) ou nenhuma vez. Tecnicamente, os parâmetros das instruções são avaliados apenas quando necessários (o que em inglês se chama parâmetros call-by-name).

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.