< Coluna em Fórum PCs >
|
||
27/02/2006
|
< 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. 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.
Instrução 11; Formato: {[1011] [00000000]}; Descrição: 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.
Instrução 12; Formato: {[1100] [endereço]}; Descrição: 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;
Instrução 13; Formato: {[1101] [endereço]}; Descrição: 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;
Instrução 14; Formato: {[1110] [endereço]}; Descrição: 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;
Instrução 15; Formato: {[1111] [endereço]}; Descrição: 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;
Um programa em linguagem de máquina
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. B. Piropo |