AND – Lógico E com deslocamento lógico opcional
Descrição: Executa lógica E bit a bit entre os registradores
especificados e armazena o resultado no registrador destino.
Operação:
I. Rd ← Rd ∧ Rs;
II.
Rd ←
Rx ∧ (Ry << sa5);
III. Rd ←
Rx ∧ (Ry >> sa5);
Sintaxe:
I. and
Rd, Rs
II.
and
Rd, Rx, Ry << sa
III. and
Rd, Rx, Ry >> sa
Operandos:
I. {d, s} ∈ {0, 1, ..., 15}
II, III
{d, x, y} ∈ {0, 1, ..., 15}
/ sa ∈ {0, 1, ..., 31}
AND{cond4} – condicional E
Descrição: Executa lógica E bit a bit entre os registradores
especificadose armazena o resultado no registrador destino.
Operação:
I. if ( cond4)
Rd ← Rx
∧ Ry;
Sintaxe:
I. and{cond4}Rd, Rx, Ry
Operandos:
I. {d, x, y} ∈ {0, 1, ..., 15}
/ cond4 ∈ {eq, ne, cc/hs, cs/lo,
ge, lt, mi, pl, ls, gt, le, hi, vs, vc, qs, al}
ANDN – Lógico não E
Descrição: Executa uma não E lógico bit a bit entre os
registradores especificados e armazena o resultado no registrador
destino.
Operação:
I. Rd ← Rd ∧ ¬Rs;
Sintaxe:
I. Andn
Rd, Rs
Operandos:
I.
{d, s} ∈ {0, 1, ..., 15}
ANDH, ANDL – Lógico E no registrador na metade alta ou baixa
Descrição:
Executa uma lógico E bit a bit na meia palavra entre a parte alta ou
baixa no registrador especificado e uma constante. O resultado é
armazenado na meia palavra na parte alto ou baixo do registrador
destino, enquanto os outros bits mantêm-se inalterados. O parâmetro
limpa outra metade – COH, permite que a outra metade seja zerada.
Operação:
I.
Rd[31:16] ← Rd[31:16] ∧ imm16;
II.
Rd[31:16] ← Rd[31:16] ∧ imm16;
Rd[15:0]
← 0;
III.
Rd[15:0] ← Rd[15:0] ∧ imm16;
IV.
Rd[15:0] ← Rd[15:0] ∧ imm16;
Rd[31:16]
← 0;
Sintaxe:
I. andh
Rd, imm
II.
andh
Rd, imm, COH
III.
andl
Rd, imm
IV.
andl
Rd, imm, COH
Operandos:
I, II, III, IV.
d ∈ {0, 1, ..., 15}
/ imm ∈ {0, 1, ...,
65535}
COM – complemento um
Descrição: Realizar um complemento um no registrador especificado.
Operação:
I. Rd ← ¬Rd;
Sintaxe:
I. com
Rd
Operandos:
I. d ∈ {0, 1, ..., 15}
EOR – Exclusivo OU com deslocamento lógico opcional
Descrição: Executa um exclusivo OU lógico bit a bit entre os
registradores especificados e armazena o resultado no registrador
destino.
Operação:
I. Rd ← Rd ⊕ Rs;
II.
Rd ←
Rx ⊕ (Ry << sa5);
III. Rd ←
Rx ⊕ (Ry >> sa5);
Sintaxe:
I.
eor
Rd, Rs
II.
eor
Rd, Rx, Ry << sa
III.
eor
Rd, Rx, Ry >> sa
Operandos:
I. {d, s} ∈ {0, 1, ..., 15}
/ II, III. {d, x, y} ∈ {0, 1, ...,
15}
/ sa ∈ {0, 1, ..., 31}
EOR{cond4} – EOR lógico condicional
Descrição: Executa um exclusivo OU lógico bit a bit entre os
registradoree especificadas e armazena o resultado no registrador
destino.
Operação:
I. if ( cond4)
Rd ← Rx
⊕ Ry;
Sintaxe:
I. eor{cond4}
Rd, Rx, Ry
Operandos:
I. {d, x, y} ∈ {0, 1, ..., 15}
/ cond4 ∈ {eq, ne, cc/hs, cs/lo,
ge, lt, mi, pl, ls, gt, le, hi, vs, vc, qs, al}
EORH, EORL – Lógica EOR na metade alta ou baixa do registador
Descrição: Executa um lógica OU exclusivo bit a bit entre a meia
palavra alta ou baixa no registrador especificado e uma constante. O
resultado é armazenado no registrador destino.
Operação:
I.
Rd[31:16] ← Rd[31:16] ⊕ imm16
II.
Rd[15:0] ← Rd[15:0] ⊕ imm16
Sintaxe:
I. eorh
Rd, imm
II.
eorl
Rd, imm
Operandos:
I, II. D ∈ {0, 1, ..., 15} / imm ∈ {0, 1, ..., 65535}
OR – OU lógico com Deslocamento lógico opcional
Descrição: Executa um bit a bit OU lógico entre os registradores
especificados e o armazenado, o resultado vai para o registrador
destino.
Operação:
I.
Rd ← Rd ∨ Rs;
II. Rd ←
Rx ∨ (Ry << sa5);
III. Rd ←
Rx ∨ (Ry >> sa5);
Sintaxe:
I.
or
Rd, Rs
II.
or
Rd, Rx, Ry << sa
III.
or
Rd, Rx, Ry >> sa
Operandos:
I.
{d, s} ∈ {0, 1, ..., 15}
II, III.
{d, x, y} ∈ {0, 1, ..., 15}
/ sa ∈ {0, 1, ..., 31}
OR{cond4} – OU lógico condicional
Descrição: Executa um bit a bit OU lógico entre os registradores e
o byte armazenado e especificado. O resultado será enviado no
registrador destino.
Operação:
I. if ( cond4)
Rd ← Rx
∨ Ry;
Sintaxe:
I. or{cond4} Rd, Rx, Ry
Operandos:
I. {d, x, y} ∈ {0, 1, ..., 15} / cond4 ∈ {eq, ne, cc/hs, cs/lo,
ge, lt, mi, pl, ls, gt, le, hi, vs, vc, qs, al}
ORH, ORL – OR lógico na metade alta ou baixa do registrador
Descrição: Executa um bit a bit OU lógico entre a palavra alta ou
baixa no registrador especificado e uma constante. O resultado é
armazenado no registo de destino.
Operação:
I.
Rd[31:16] ← Rd[31:16] ∨ imm16;
II.
Rd[15:0] ← Rd[15:0] ∨ imm16;
Sintaxe:
.
orh
Rd, imm
II.
orl
Rd, imm
Operandos:
I, II.
d ∈ {0, 1, ..., 15} / imm ∈ {0, 1, ..., 65535}
TST – teste de registrador
Arquitetura revisão: Arquitetura revision1 e superior.
Descrição: teste de registradores. Usado para verificação de um
subconjunto de um ou mais bits. O resultado é retornado e as
bandeiras estão determinados.
operação: I. Rd ∧ Rs;
sintaxe: I. tst Rd, Rs
operandos: I. {d,s} ∈ {0, 1, ..., 15}
Nenhum comentário:
Postar um comentário