Com a instruções AND, aplicamos sobre os bits de um registrador, de dado ou valor em
memória, a operação E bit-a-bit. Todas as flags, exceto X, são alteradas.
A operação AND pode ser utilizada para resetar bits com uma máscara ou
testar bits. Essa instrução possui as 2 possibilidades de uso abaixo:
- 1. Origem sendo endereço efetivo(ee) e registrador de dado sendo destino
- 2. Origem sendo registrador de dado e endereço efetivo sendo destino
Operação
destino <- destino & origem
Endereçamento 1
Dx, (Ax), (Ax)+, -(Ax), n(Ax), n(Ax,Dx[.W|.L]|Ax[.W|.L]), absoluto.W, absoluto.L, n(PC), n(PC,Dx[.W|.L]|Ax[.W|.L]), #imediato
Endereçamento 2
(Ax), (Ax)+, ‑(Ax), n(Ax), n(Ax,Dx[.W|.L]|Ax[.W|.L]), absoluto.W, absoluto.L
Tamanho do dado
Byte, Word e Longword
CCR
X: -
N: a
Z: a
V: 0
C: 0
Sintaxe
AND ee, Dx
AND Dx,ee
Abaixo, uma demostração da aplicação da operação E bit-a-bit sobre 2 valores de 8-bits:
Tab. 1: Valor 1 - 0xCC
| Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
| 1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Tab.2: Valor 2 - 0xAA
| Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
| 1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
Tab. 3: Resultado - 0x88
| Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
| 1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Ex
AND.W D7,$00008000
AND.L $00008000,D6