Operação Lógica OR no MIPS

instrução MIPS LW e SW IF Simples no MIPS
Este post faz parte da série MIPS

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:

PQR
000
011
101
111

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:

  1. a) 324 OR 100
  2. b) 2018 OR 1970
  3. c) 33 OR 66

MIPS

Operação Lógica AND no MIPS Operação Lógica NOT no MIPS
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
rauni siqueira
rauni siqueira
11/06/2018 10:27

A operação or é a mesma de add?

Home » Hardware » Sistemas Digitais » Operação Lógica OR no MIPS

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: