Com a instruções OR, aplicamos sobre os bits de um registrador de dados ou valor em memória a operação bit-a-bit OU lógico.
Os bits diferentes resultam em 1 e iguais resultam em 0 ou 1. Todas as flags, exceto X, são alteradas.
A operação OR é utilizada para setar bits utilizando valores conhecidos como máscara e
possuem as 2 possibilidades de uso abaixo:
- 1. Origem sendo endereço efetivo(ee) e registrador de dados sendo destino
- 2. Origem sendo registrador de dados 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
OR ee, Dx
ORI Dx, ee
Abaixo, uma demostração da aplicação da operação OU bit-a-bit sobre 2 valores de 8-bits:
Tab. 4: Valor 1 - 0xCC
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Tab.5: Valor 2 - 0xAA
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
Tab. 6: Resultado - 0xEE
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Ex
ORI.W D4,$00008000
ORI.W $00002700,D3