O que é um conjunto de instruções?

Qualquer CPU é projetada desde o início para suportar um determinado conjunto de instruções. Um conjunto de instruções é um conjunto de operações codificadas que a CPU pode executar. Essas operações podem ser, por exemplo, somar dois números, pular para uma parte diferente do programa ou comparar dois valores. Cada operação que um computador pode executar é representada exclusivamente por um opcode.

Opcodes

Ao executar um programa, a CPU usa um contador de programa para rastrear qual instrução precisa ser executada a seguir. Quando uma instrução é buscada, o contador do programa é incrementado pelo comprimento da instrução de modo que aponte para o início da próxima instrução. Cada instrução consiste em um opcode. Dependendo da instrução, pode ou não incluir operandos. Os operandos podem ser um valor constante ou um ponteiro para a localização de um valor no registrador da CPU ou na RAM do sistema.

Uma vez que a instrução completa foi buscada, ela precisa ser decodificada. Este é o processo onde a CPU separa o opcode e quaisquer operandos. O opcode decodificado é usado para habilitar ou desabilitar caminhos elétricos específicos na CPU que resultarão na operação correta.

Uma vez que a instrução tenha sido decodificada, ela será executada. O comportamento exato da CPU dependerá da operação. Uma operação de adição somará dois valores. Uma operação de salto calculará para onde saltar no programa. Uma operação de comparação comparará dois valores. Uma operação NOP ficará ociosa, pois NOP significa No Operation.

A maioria das instruções produzirá o resultado da operação. Essa saída pode ir para os registradores do processador e, se necessário, para a RAM do sistema. Cada uma dessas operações leva um único ciclo de clock para ser concluída.

Opcodes ilegais

Cada arquitetura de CPU tem sua lista específica de opcodes publicada pelo fabricante. Os valores desses opcodes não são necessariamente os mesmos entre plataformas, e é por isso que o software precisa ser compilado para diferentes arquiteturas. Em alguns casos, o fabricante também inclui opcodes não documentados. Estes são referidos como "opcodes ilegais". Opcodes ilegais, enquanto não documentados, executarão a mesma função toda vez que forem chamados. No entanto, como recursos não documentados e fora do padrão, as atualizações na arquitetura da CPU podem simplesmente removê-los.

Alguns dos primeiros jogos de computador do Apple II dependiam de opcodes ilegais específicos. Eles então sofreram problemas de desempenho e estabilidade na revisão posterior da CPU Apple IIc, pois o IIc removeu os opcodes ilegais exigidos pelos jogos. Opcodes ilegais também foram usados ​​em círculos de proteção de direitos autorais como um método de segurança por meio da obscuridade em sua luta contra piratas que quebram seu conteúdo. Alguns opcodes ilegais são simplesmente ferramentas de depuração e manipuladores de erros.

O conjunto de instruções x86 contém um grande número de opcodes ilegais não documentados. Curiosamente, alguns deles são compartilhados entre CPUs Intel e AMD, indicando que ambas as empresas estão cientes publicamente de seu propósito enquanto não documentadas.

Compiladores e Assembly

A maioria dos programas é escrita em linguagens de alto nível. Estes são relativamente fáceis de ler, muitas vezes usando palavras em inglês ou taquigrafia para minimizar as curvas de aprendizado. Para um computador executar esses programas, eles precisam ser compilados. Um compilador é basicamente um tradutor. Ele pega o código de alto nível e o converte em código de computador, as instruções que a CPU pode entender.

Também é possível, em alguns idiomas, executar código não compilado por meio de um programa previamente compilado que gera código de máquina em tempo real. Assembly é uma linguagem de programação de baixo nível que usa atalhos para permitir aos desenvolvedores visibilidade direta e controle sobre as operações executadas. NOP é um exemplo de abreviação de montagem.

Conclusão

Um conjunto de instruções é uma lista de funções oficiais que uma arquitetura de CPU pode executar. É uma lista de operações que podem ser realizadas. Essas operações são codificadas na CPU e chamadas usando seus respectivos opcodes.

O software geralmente usa um compilador para traduzir do código de alto nível legível por humanos para o código de máquina que a CPU pode ler. Às vezes, uma arquitetura de CPU pode ter opcodes não documentados, chamados de opcodes ilegais. Opcodes ilegais são tecnicamente parte do conjunto de instruções. No entanto, eles podem não estar disponíveis de forma confiável em futuras iterações da plataforma. Não se esqueça de deixar seus pensamentos nos comentários abaixo.



Como clonar um disco rígido

Como clonar um disco rígido

Na era digital moderna, onde os dados são um bem valioso, a clonagem de um disco rígido no Windows pode ser um processo crucial para muitos. Este guia completo

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Como consertar o driver WUDFRd que falhou ao carregar no Windows 10?

Você está enfrentando a mensagem de erro ao inicializar o computador, informando que o driver WUDFRd falhou ao carregar no seu computador?

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Como corrigir o código de erro NVIDIA GeForce Experience 0x0003

Você está enfrentando o código de erro 0x0003 da experiência NVIDIA GeForce em sua área de trabalho? Se sim, leia o blog para descobrir como corrigir esse erro de forma rápida e fácil.

Noções básicas de impressão 3D: adesão à base da impressora

Noções básicas de impressão 3D: adesão à base da impressora

Aprendendo sobre impressão 3D? Aqui está o que você precisa saber sobre a adesão da base da impressora.

Como remover uma GPU do Windows PC em 2023

Como remover uma GPU do Windows PC em 2023

Você precisa remover a GPU do seu PC? Junte-se a mim enquanto explico como remover uma GPU do seu PC neste guia passo a passo.

Como instalar um SSD NVMe em um desktop e laptop

Como instalar um SSD NVMe em um desktop e laptop

Comprou um novo SSD NVMe M.2, mas não sabe como instalar? Continue lendo para saber como instalar um SSD NVMe em um laptop ou desktop.

O que é uma bomba lógica?

O que é uma bomba lógica?

Uma bomba lógica é um incidente de segurança em que um invasor configura uma ação atrasada. Continue lendo para saber mais.

O que é Stuxnet?

O que é Stuxnet?

O Stuxnet era um worm autopropagado. Foi o primeiro uso de uma arma cibernética e a primeira ocorrência de malware.

O que é um hacker ético?

O que é um hacker ético?

Um hacker ético é um hacker que age dentro das restrições da lei. Continue lendo para saber mais sobre o assunto.

O que é criptografia simétrica?

O que é criptografia simétrica?

Existem muitas partes diferentes da criptografia. Se você deseja criptografar alguns dados, existem dois tipos de algoritmos que você pode usar: simétrico