Operação Lógica OR no MIPS

instrução MIPS LW e SW IF Simples no 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

Outros artigos da série

<< Operação Lógica AND no MIPSOperação Lógica NOT no MIPS >>
Website | Veja + conteúdo

Atuo como Professora de Informática e Computação desde 2001, atendendo de forma especial a Terceira Idade e Concurseiros. Desde 2009 venho atuando como Docente no Ensino Superior em diversos cursos de Graduação e Pós Graduação Lato Sensu, tanto presenciais, quanto semipresenciais e à distância. Ministrei várias disciplinas onde ensino os estudantes a desenvolverem plataformas e sistemas computacionais. Orientei vários trabalhos acadêmicos, desenvolvi inúmeros materiais, trabalhei com pesquisa, ensino, extensão e inovação, ministrei palestras em vários eventos. Mais recentemente venho ofertando serviços na área de tecnologia como desenvolvimento de sistemas, treinamentos, consultoria, mentoria, etc. Comecei meu Doutorado na área de Machine Learning (Multi-label Classification) na UFSCar em 02/2019 e devo terminar em 01/2023. Também estudo canto, jogo vôlei, sou geek, nerd, otaku e gamer!

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
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?

Talvez você goste:

Séries



Outros da Série

Menu