Oi pessoal! Tudo bem? Espero que sim. No último artigo publicado desta série eu falei sobre a operação lógica bit a bit AND (E). Hoje, vou falar sobre a operação lógica OR.
OR (ou)
A operação lógica OR é uma operação bit a bit com dois operandos que resulta em 1 quando o valor 1 estiver presente em quaisquer dos dois operandos. É o mesmo comportamento esperado de uma porta lógica OR que possui a seguinte tabela booleana:
| P | Q | R |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Pela tabela, nota-se um comportamento muito parecido com a soma, veja: 0 + 0 = 0; 0 + 1 = 1; 1 + 0 = 1 e, 1 + 1 = 1. A instrução OR tem a seguinte sintaxe:
OR registrador_destino, registrador_fonte, registrador_fonte
O registrador destino armazena o resultado da operação que é operada em cima dos dois operandos que estão armazenados, cada um, em um registrador fonte diferente. Vamos efetuar a operação OR nos mesmos números decimais do exemplo da operação AND:
OR $t0, $t3, $t4 #$t0 = $t3 | $t4
O que acontece nesta operação pode ser representado como a tabela abaixo:
|
$t3 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
$t4 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
$t0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Cada bit que compõe o número binário será verificado individualmente, começando pelo bit mais à direita e terminando no bit mais à esquerda, como acontece quando você resolve uma conta aritmética no caderno. O bit resultante de cada posição resultará em 1 quando qualquer um dos operandos também for 1, conforme você pode comprovar na tabela. Caso contrário, o resultado será 0. O número decimal resultante desta operação é 15.616.
Vejamos então como fica a Linguagem de Montagem:
OR $t0, $t3, $t4
A Linguagem de Máquina:
OR $8, $11, $12
Representação da Linguagem de Máquina:
|
opcode |
rs |
rt |
rd |
shamt |
funct |
|
0 |
11 |
12 |
8 |
0 | 37 |
Código de máquina:
00000001011011000100000000100101
A operação OR se enquadra no grupo das operações aritméticas, por isso o opcode 0 e o funct 36, isso porque temos a Unidade Lógica Aritmética, que é a responsável por processar esses tipos de operações.
Conclusão
Pessoal, se houver qualquer tipo de dúvida, por favor, deixem aqui embaixo nos comentários, responderei o mais breve possível.
Exercícios
Aplique a operação lógica MIPS OR entre os seguintes pares de números decimais:
- a) 324 OR 100
- b) 2018 OR 1970
- c) 33 OR 66









A operação or é a mesma de add?
Oi Rauni, não é exatamente a mesma, mas são parecidas. O princípio do OR é uma SOMA, assim como o ADD. O princípio do AND é uma MULTIPLICAÇÃO assim como a operação matemática de multiplicação também. Então 0 + 0 = 0 e O OR O = 0; 1 + 0 = 1 e 1 OR 0 = 1. Para mais detalhes, sugiro que você estude portas lógicas e aritmética digital.