Operação Lógica AND 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 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

37

Código de máquina:

00000001011011000100000000100101

A operação AND se enquadra no grupo das operações aritméticas, por isso o opcode 0 e o funct 37, 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 >>
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.

Hardware » Sistemas Digitais » Operação Lógica AND no MIPS
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

WEBINAR
 
RISC-V:
Novidades de 2020

 

Data: 26/08 às 19:30h - Apoio: Mouser Elecctronics
 
INSCREVA-SE AGORA »



 
close-link