Operação Lógica OR no MIPS

instrução MIPS LW e SW IF Simples no MIPS

ÍNDICE DE CONTEÚDO

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

36

 

 

Código de máquina:

00000001011011000100000000100100

 

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 >>
NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

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

Elaine Cecília Gatto
Bacharel em Engenharia de Computação. Mestre em Ciência da Computação. Doutoranda em Ciência da Computação. Co-fundarora e Líder das #GarotasCPBr. Pesquisadora Convidada no Grupo de Pesquisa: "Artes em Tecnologias Emergentes" do Programa de Pós Graduação em Design na UNESP Campus Bauru. Cantora, Docente no Magistério Superior, Geek, Nerd, Otaku e Gamer. Apaixonada por Michael Jackson, Macross, Rocky Balboa, Séries, Filmes, Cervejas e Vinhos. Mais informações sobre mim você encontra em: http://lattes.cnpq.br/8559022477811603.

2
Deixe um comentário

avatar
 
1 Comment threads
1 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Elaine Cecília Gattorauni siqueira Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
rauni siqueira
Visitante
rauni siqueira

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