ITF Portal - Banner Topo
Slot: /23408374/itf-ad-banner-topo
720x300, 728x90, 728x210, 970x250, 970x90, 1190x250

Computadores XXVI: O conjunto de instruções, final.

Na coluna anterior, ” O conjunto de instruções, primeira parte “, examinamos as dez primeiras instruções de nosso modesto conjunto de instruções de apenas dezesseis membros. Hoje examinaremos as seis restantes e veremos como usá-las para desenvolver um programa em linguagem de máquina. Mas primeiro vejamos nossas últimas instruções: INSTRUÇÕES MATEMÁTICAS E LÓGICAS: Instruções que […]

Publicado: 24/05/2026 às 21:29
Leitura
6 minutos
Computadores XXVI: O conjunto de instruções, final.
Construção civil — Foto: Reprodução

Na coluna anterior, ” O conjunto de instruções, primeira parte “, examinamos as dez primeiras instruções de nosso modesto conjunto de instruções de apenas dezesseis membros. Hoje examinaremos as seis restantes e veremos como usá-las para desenvolver um programa em linguagem de máquina.

Mas primeiro vejamos nossas últimas instruções:

INSTRUÇÕES MATEMÁTICAS E LÓGICAS: Instruções que efetuam operações com o valor contido no Acumulador (ACC; e neste caso não terá operando) ou com este valor e um segundo operando cujo valor está contido na posição de memória cujo endereço é [endereço] (e nesse caso o operando é um endereço, ou endereço da posição de memória que contém o valor) .

Instrução 10; Formato: {[1010] [00000000]}; Descrição: Incrementa (soma um a) o valor contido no ACC. Esta instrução não tem operando. Os oito bits correspondentes ao operando são preenchidos com zeros.

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Decrementa (subtrai um de) o valor contido no ACC. Esta instrução não tem operando. Os oito bits correspondentes ao operando são preenchidos com zeros.

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Soma os valores contidos no ACC e na posição de memória cujo endereço é o número de oito bits [endereço] e escreve o resultado no ACC; Qualquer outro valor eventualmente contido no ACC será sobrescrito. O conteúdo da posição de memória cujo endereço é [endereço] permanece inalterado;

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Subtrai o valor contido na posição de memória cujo endereço é o número de oito bits [endereço] do valor contido no ACC e escreve o resultado no ACC; Qualquer outro valor eventualmente contido no ACC será sobrescrito. O conteúdo da posição de memória cujo endereço é [endereço] permanece inalterado;

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Multiplica o valor contido no ACC pelo valor contido na posição de memória cujo endereço é o número de oito bits [endereço] e escreve o resultado no ACC; Qualquer outro valor eventualmente contido no ACC será sobrescrito. O conteúdo da posição de memória cujo endereço é [endereço] permanece inalterado;

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Divide o valor contido no ACC pelo valor contido na posição de memória cujo endereço é o número de oito bits [endereço] e escreve o resultado no ACC; Qualquer outro valor eventualmente contido no ACC será sobrescrito. O conteúdo da posição de memória cujo endereço é [endereço] permanece inalterado;

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Pronto, terminamos. Esse é o nosso conjunto de instruções. Achou pouco? Bem, com quatro bits não se pode mesmo fazer muito mais que isso. Deu por falta de instruções essenciais, como as que implementam o conjunto de operações lógicas básicas “maior que”, “igual a” e “menor que”? Ora, meu amigo, você é um programador (e se não for e ainda assim está lendo este cartapácio, garanto que um dia será, e dos bons). E programadores não se apertam diante dessas pequenas vicissitudes. Quer comparar dois números? Pois subtraia um do outro e verifique se o resultado no ACC é positivo, nulo ou negativo. Isso combinado com as instruções de salto resolve qualquer problema de comparação. E assim, apenas com essas poucas instruções, um bom programador pode fazer milagres.

Não acredita? Pois vejamos como, com nosso pequeno e limitadíssimo conjunto de instruções, poderemos fazer algo de útil. Preste atenção na Figura 7.

[photoframe folder=wp-content/blogs.dir/4/files/computadores-xxvi-o-conjunto-de-instrucoes-final filename=

Na esquerda temos nossa velha conhecida CPU. Não há muita novidade aqui, exceto o fato do PI estar ocupado com um valor. Ora, quem leu as colunas anteriores está farto de saber que um valor no PI só pode significar uma coisa: o endereço da posição de memória que contém a próxima instrução a ser executada. E o valor contido no PI é (00000000b), zero em binário. Portanto o ponteiro de instruções “aponta” para o endereço (00000000b) da MP, o que significa que assim que nossa UCP for energizada será iniciado o primeiro ciclo de busca e execução, ou seja, o valor contido na posição de memória (00000000b) será transportado para o RI, o conteúdo do PI será incrementado e a instrução transportada para o RI será decodificada e executada. E prosseguirá assim sucessivamente, ciclo após ciclo, até que a UCP seja desligada ou que seja encontrada uma instrução que mande interromper o programa e devolver o controle para o sistema operacional.

Agora dedique alguma atenção ao lado direito da Figura 7. Ele é composto por duas colunas. A da esquerda é formada por vinte e seis endereços de posições da memória principal em binário, de zero a vinte e cinco, ordenados crescentemente de cima para baixo (já vimos o porquê desta aparente inversão de ordem na coluna anterior). E a da direita?

Bem, a da direita é formada pelos conteúdos dessas vinte e seis posições de memória. Que, na medida que forem se sucedendo os ciclos de busca e execução, terão seus conteúdos lidos, eventualmente alterados (se forem dados) ou executados (se forem instruções; afinal estamos trabalhando com uma máquina de Von Newmann, que armazena tanto dados quanto instruções no mesmo espaço de memória, lembra-se?).

Então, o que representa essa coluna de números expressos em binário?

Isso, meu amigo, muito bem, acertou: um programa em linguagem de máquina.

Um programinha de nada, apenas 26 posições de memória ocupadas com dados e instruções. No entanto, é um programa capaz de desempenhar uma tarefa útil. Limitada, é verdade, pelos valores que podem ser armazenados em posições de MP de apenas doze bits (números absolutos-sem sinal-de zero a 4.095, números relativos de -2.047 a +2.047, lembre-se da coluna anterior). Mas mesmo assim o programa pode ser útil (inclusive para mostrar como era dura a vida de um programador antes da Almirante Hopper desenvolver a linguagem Assembly).

Agora que você já sabe com que se parece um programa em linguagem de máquina e conhece cada uma das instruções do nosso conjunto de instruções, pergunto: você é capaz de deduzir qual o objetivo do programa da Figura 7? O que esse programa faz?

A resposta cabe em uma frase.

Quem se habilita?

Coluna anterior: O conjunto de instruções, primeira parte Próxima coluna: Mnemônicos

As melhores notícias de tecnologia B2B em primeira mão
Acompanhe todas as novidades diretamente na sua caixa de entrada
Imagem do ícone
Notícias
Imagem do ícone
Revistas
Imagem do ícone
Materiais
Imagem do ícone
Eventos
Imagem do ícone
Marketing
Imagem do ícone
Sustentabilidade
Autor
Notícias relacionadas