Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Logica Booleana em Assembly: AND, OR, NOT, XOR, Notas de estudo de Eletrônica

A lógica booleana em assembly, explicando as operações and, or, not e xor. Cada operação é acompanhada por sua tabela de verdade e exemplos de uso. Além disso, são discutidas as utilidades de cada operação, como resetar determinados bits sem afetar os demais.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 09/02/2008

bruno-diego-10
bruno-diego-10 🇧🇷

5 documentos

1 / 4

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸
³ RBT þ Curso de Assembly þ Aula N§ 05 ³
ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;
Por: Bruno Diego
ÕÍÍÍÍÍÍÍÍÍÍÍ͸
³ ASSEMBLY V ³
ÔÍÍÍÍÍÍÍÍÍÍÍ;
0 0
8 7
0 0
9 4
0 0
8 7
0 0
8 4
Depois de algumas instru es de movimenta o de dados vou
0 0
8 3
0 0
8 7
0 0
9 4
mostrar a mec nica da l¢gica booleana, bem como algumas instru es.
0 0
8 7
0 0
9 4
A l¢gica booleana baseia-se nas seguintes opera es: AND, OR,
0 0
8 7
0 0
8 4
0 0
8 7
0 0
8 4
NOT. Para simplificar a minha digita o vou usar a nota o
0 0
8 7
0 0
8 4
0 0
8 2
simplificada: & (AND), | (OR) e ~ (NOT). Essa nota o usada na
linguagem C e em muitos manuais relacionados a hardware da IBM.
0 0
8 7
0 0
8 4
þ Opera o AND:
0 0
8 7
0 0
8 4
A opera o AND funciona de acordo com a seguinte tabela-verdade:
ÚÄÄÄÄÄÄÄÄÄÄÄ¿
³ S = A & B ³
ÆÍÍÍÑÍÍÍÑÍÍ͵
³ A ³ B ³ S ³
ÃÄÄÄÅÄÄÄÅÄÄÄ´
³ 0 ³ 0 ³ 0 ³
³ 0 ³ 1 ³ 0 ³
³ 1 ³ 0 ³ 0 ³
³ 1 ³ 1 ³ 1 ³
ÀÄÄÄÁÄÄÄÁÄÄÄÙ
Note que o resultado (S) ser 1 apenas se A "E" B forem 1.
0 0
8 7
0 0
9 4
Aplicando esta l¢gica bit a bit em opera es envolvendo dois
bytes obteremos um terceiro byte que ser o primeiro AND o segundo:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ A = 01010111b B = 00001111b ³
³ ³
³ S = A & B -> 01010111b ³
³ & 00001111b ³
³ ÄÄÄÄÄÄÄÄÄÄÄÄÄ ³
³ 00000111b ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
0 0
8 2
Uma das utilidades de AND resetar um determinado bit sem
pf3
pf4

Pré-visualização parcial do texto

Baixe Logica Booleana em Assembly: AND, OR, NOT, XOR e outras Notas de estudo em PDF para Eletrônica, somente na Docsity!

ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸

³ RBT þ Curso de Assembly þ Aula N§ 05 ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ;

Por: Bruno Diego

ÕÍÍÍÍÍÍÍÍÍÍÍ͸ ³ ASSEMBLY V ³ ÔÍÍÍÍÍÍÍÍÍÍÍ;

0 0 8 7

0 0 9 4

0 0 8 7

0 0 Depois de algumas instru es de movimenta (^) 8 4o de dados vou 0 0 8 3

0 0 8 7

0 0 mostrar a mec nica da l¢gica booleana, bem como algumas instru (^) 9 4es.

0 0 8 7

0 0 A l¢gica booleana baseia-se nas seguintes opera (^) 9 4es: AND, OR, 0 0 8 7

0 0 8 4

0 0 8 7

0 0 NOT. Para simplificar a minha digita o vou usar a nota 0 0 (^) 8 4o

8 7

0 0 8 4

0 0 simplificada: & (AND), | (OR) e ~ (NOT). Essa nota o (^) 8 2 usada na linguagem C e em muitos manuais relacionados a hardware da IBM.

0 0 8 7

0 0 þ Opera (^) 8 4o AND:

0 0 8 7

0 0 A opera (^) 8 4o AND funciona de acordo com a seguinte tabela-verdade:

ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ³ S = A & B ³ ÆÍÍÍÑÍÍÍÑÍÍÍμ ³ A ³ B ³ S ³ ÃÄÄÄÅÄÄÄÅÄÄÄ´ ³ 0 ³ 0 ³ 0 ³ ³ 0 ³ 1 ³ 0 ³ ³ 1 ³ 0 ³ 0 ³ ³ 1 ³ 1 ³ 1 ³ ÀÄÄÄÁÄÄÄÁÄÄÄÙ

Note que o resultado (S) ser 1 apenas se A "E" B forem 1. 0 0 8 7

0 0 Aplicando esta l¢gica bit a bit em opera (^) 9 4es envolvendo dois bytes obteremos um terceiro byte que ser o primeiro AND o segundo:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ A = 01010111b B = 00001111b ³ ³ ³ ³ S = A & B -> 01010111b ³ ³ & 00001111b ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ 00000111b ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

0 0 Uma das utilidades de AND (^) 8 2 resetar um determinado bit sem

afetar os demais. Suponha que queira resetar o bit 3 de um determinado byte. Para tanto basta efetuar um AND do byte a ser trabalhado com o valor 11110111b (Apenas o bit 3 resetado).

0 0 8 7

0 0 Eis a sintaxe da instru (^) 8 4o AND:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ AND AL,11110111b ³ ³ AND BX,8000h ³ ³ AND DL,CL ³ ³ AND [DI],AH ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÙ

Lembrando que o operando destino (o mais a esquerda) deve sempre ser um registrador ou uma referencia a mem¢ria. o operando a 0 0 direita (fonte) pode ser um registrador, uma refer 0 0 8 8 ncia a mem¢ria ou

8 7

0 0 8 4

0 0 um valor imediato, com a restri o de que n8 4 o podemos usar 0 0 refer8 8 ncias a mem¢ria nos dois operandos.

0 0 8 7

0 0 A instru (^) 8 4o AND afeta os FLAGS Z, S e P e zera os flags Cy (Carry) e O (veja os flags em alguma mensagem anterior a esta).

0 0 8 7

0 0 þ Opera (^) 8 4o OR:

ÚÄÄÄÄÄÄÄÄÄÄÄ¿

³ S = A | B ³

ÆÍÍÍÑÍÍÍÑÍÍÍμ ³ A ³ B ³ S ³ ÃÄÄÄÅÄÄÄÅÄÄÄ´ ³ 0 ³ 0 ³ 0 ³ ³ 0 ³ 1 ³ 1 ³ ³ 1 ³ 0 ³ 1 ³ ³ 1 ³ 1 ³ 1 ³ ÀÄÄÄÁÄÄÄÁÄÄÄÙ

Note que S ser 1 se A "OU" B forem 1. Da mesma forma que AND, aplicamos essa l¢gica bit a bit 0 0 8 2

0 0 8 7

0 0 envolvendo um byte ou word atrav s de uma instru (^) 8 4o em assembly. Vejamos um exemplo da utilidade de OR:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ A = 01010111b B = 10000000b ³ ³ ³ ³ S = A | B -> 01010111b ³ ³ | 10000000b ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Que na tabela-verdade fica:

ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ³ S = A ^ B ³ ÆÍÍÍÑÍÍÍÑÍÍÍμ ³ A ³ B ³ S ³ ÃÄÄÄÅÄÄÄÅÄÄÄ´ ³ 0 ³ 0 ³ 0 ³ ³ 0 ³ 1 ³ 1 ³ ³ 1 ³ 0 ³ 1 ³ ³ 1 ³ 1 ³ 0 ³ ÀÄÄÄÁÄÄÄÁÄÄÄÙ

Uso o simbolo ^ para o XOR aqui. XOR funciona da mesma forma que OR, s¢ que o resultado ser 1 se APENAS A ou APENAS B for 1, melhor dizendo: Se ambos forem diferentes.

0 0 XOR (^) 8 2muito £til quando se quer inverter um determinado bit de um byte ou word sem afetar os outros:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ A = 01010111b B = 00001111b ³ ³ ³ ³ S = A ^ B -> 01010111b ³ ³ ^ 00001111b ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ 01011000b ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

No exemplo acima invertemos apenas os quatro bits menos significativos de A.

0 0 A sintaxe e os flags afetados s8 4 o os mesmos que AND e OR. ?