Operação Lógica NOT 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 OR (OU). Hoje, vou falar sobre a operação lógica NOT (NÃO).

NOT

A operação lógica NOT é uma operação bit a bit com um operando, diferente das operações AND e OR que precisam de dois operandos. O efeito desta operação é o de INVERTER os valores binários existentes em cada posição, significando que 0 se torna 1 e 1 se torna 0. É o mesmo comportamento esperado de uma porta lógica NOT que possui a seguinte tabela booleana:

PR
01
10

Entretanto, não é exatamente esta a operação que o MIPS executa. Para seguir o padrão de dois operandos, esta instrução de INVERSÃO foi projetada para atuar também em cima de dois operandos, por isso, usa-se na verdade a instrução NOR (NOT OR), e não NOT, propriamente dito. A instrução funciona da seguinte forma:

A NOR 0

NOT ( A OR 0 )

NOT (A)

Substituindo A pelo valor binário zero (0):

0 NOR 0

NOT ( 0 OR 0 )

NOT (0)

1

Substituindo A pelo valor binário um (1):

1 NOR 0

NOT ( 1 OR 0 )

NOT (1)

0

Perceberam que o comportamento é igual ao da instrução NOT original? Quando um operando for zero (0) ele se torna um (1), e vice-versa. A sintaxe desta instrução no MIPS é:        

NOR 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 NOR no número decimal 15.360 que está armazenado no registrador $t3 e o registrador $t5 armazenará apenas zeros.

NOR $t0, $t3, $t5       #$t0 = ~ ( $t3 | $t5 )

O que acontece nesta operação pode ser representado como a tabela abaixo:

$t3

0

0

1

1

0

0

0

0

0

0

0

0

0

0

$t5

0

0

0

0

0

0

0

0

0

0

0

0

0

0

$t3 OR 0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

NOT

1

1

0

0

1

1

1

1

1

1

1

1

1

1

Vamos efetuar a operação NOR no número decimal 3.328 que está armazenado no registrador $t4 e o registrador $t5 armazenará apenas zeros.

NOR $t1, $t4, $t5       #$t0 = ~ ( $t4 | $t5 )

O que acontece nesta operação pode ser representado como a tabela abaixo:

$t4

0

0

1

1

0

1

0

0

0

0

0

0

0

0

$t5

0

0

0

0

0

0

0

0

0

0

0

0

0

0

$t4 OR 0

0

0

1

1

0

1

0

0

0

0

0

0

0

0

NOT

1

1

0

0

1

0

1

1

1

1

1

1

1

1

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. Vejamos então como fica a Linguagem de Montagem:

NOR $t0, $t3, $t5

NOR $t1, $t4, $t5

A Linguagem de Máquina:

NOR $8, $11, $13

NOR $9, $12, $13

Representação da Linguagem de Máquina:

opcode

rs

rt

rd

shamt

funct

0

11

13

8

0

39

0

12

13

9

0

39

Código de máquina:

000000 001011 01101 01000 00000  100111‬

000000 01100 01101 01010 000000 100111‬

A operação NOR se enquadra no grupo das operações aritméticas, por isso o opcode 0 e o funct 39, isso porque temos a Unidade Lógica Aritmética, que é a responsável por processar esses tipos de operações.

Considerações finais

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 NOR para os seguintes números decimais:

  1. a) 324
  2. b) 1970
  3. c) 66

MIPS

Operação Lógica OR no MIPS Endereços de Memória 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
Marcos
Marcos
18/12/2020 09:42

Como vou resolver NOR com somente um valor ? se é necessário ter 2 valores para calcular o OR.

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

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: