Operação Lógica AND 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 as operações lógicas de deslocamento à direita e à esquerda. Hoje, vou falar sobre a operação lógica AND no MIPS.

AND

A operação lógica AND é uma operação bit a bit com dois operandos que resulta em 1 somente se os dois bits dos operandos também forem 1. É o mesmo comportamento esperado de uma porta lógica AND que possui a seguinte tabela booleana:

PQR
000
010
100
111

Pela tabela, nota-se um comportamento muito parecido com a multiplicação, veja: 0 * 0 = 0; 0 * 1 = 0; 1 * 0 = 0 e, 1 * 1 = 1. A instrução AND tem a seguinte sintaxe:

AND 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. Considere o seguinte exemplo: o registrador $t3 possui o valor decimal 3328, que em binário é

0000 0000 0000 0000 0000 1101 0000 0000

e o registrador $t4 possui o valor decimal 15.360 que em binário é

0000 0000 0000 0000 0011 1100 0000 0000

Assim temos a instrução

AND $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

0

0

1

1

0

0

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 somente se os bits dos operandos também forem 1, conforme você pode comprovar nas posições 11 e 12, caso contrário, o resultado será 0. O número decimal resultante desta operação é 3.072.

Vejamos então como fica a Linguagem de Montagem:

AND $t0, $t3, $t4

A Linguagem de Máquina:

AND $8, $11, $12

Representação da Linguagem de Máquina:

opcode

rs

rt

rd

shamt

funct

0

11

12

8

0

3

6

Código de máquina:

00000001011011000100000000100100

A operação AND 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ário, responderei o mais breve possível.

Exercícios

Aplique a operação lógica MIPS AND entre os seguintes pares de números decimais:

  1. 324 AND 100
  2. 2018 AND 1970
  3. 33 AND 66

Outros artigos da série

<< Operações Lógicas no MIPSOperação Lógica OR 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
5 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Leticia Araujo
Leticia Araujo
29/03/2019 11:18

Olá! Você pode exemplificar em código. Pois, estou tentando fazer pelo mesmo jeito da soma, tanto no .data como no . text e não está funcionando. Obrigada pela atenção!

Hopkins Young
Hopkins Young
08/10/2018 16:39

Oi, gostaria de agradecer pela série sobre o MIPS, tem me ajudado nos estudos.
Entretanto, gostaria que me desse uma luz sobre essa operação, por favor. Entendi como é o seu funcionamento, porém não consegui ver uma aplicação/uso da operação AND. Gostaria de algum exemplo para colaborar com a memorização. Da mesma forma, gostaria de ver uma aplicação de OR.

Muito obrigado!

Elaine Cecília Gatto
Elaine Cecília Gatto
Reply to  Hopkins Young
17/10/2018 14:37

Oi!!! Enquanto UNIDADE LÓGICA ARITMÉTICA, os microprocessadores de uso geral devem fornecer todas as operações matemáticas básicas. Talvez agora você não veja utilidade alguma, mas as linguagens de programação de alto e médio nível tem essa opção de operadores matemáticos aritméticos, relacionais e lógicas!

Talvez você goste:

Séries



Outros da Série

Menu