São 3 instruções disponíveis a saber:
MOV – Move dados no registrador
Descrição: Move um valor num registrador. O valor pode ser um
imediato ou o conteúdo de um outro registrador. Note que registador
Rd pode especificar PC, resultando em um salto. Todas as bandeiras
são inalteradas.
Operação:
I.
Rd ← SE(imm8);
II.
Rd ←
SE(imm21);
III. Rd ←
Rs;
Sintaxe:
I.
mov
II.
mov
III.
mov
Rd, imm
Rd, imm
Rd, Rs
Operandos:
I.
d ∈ {0, 1, ..., 15}
/ imm ∈ {-128, -127, ..., 127}
II.
d ∈
{0, 1, ..., 15}
/ imm ∈ {-1048576, -104875, ..., 1048575}
III.
d,
s ∈ {0, 1, ..., 15}
MOV{cond4} – Move condicional para o registrador
Descrição: Copia o conteúdo do registrador fonte ou imediato para
o registrador destino. O registrador fonte permanece inalterada.
Todas as bandeiras são inalteradas.
Operação:
I.
if ( cond4)
Rd ← Rs;
II.
if (
cond4)
Rd ← SE(imm8);
Sintaxe:
I.
mov{cond4} Rd, Rs
II.
mov{cond4} Rd, imm
Operandos:
I.
{d, s} ∈ {0, 1, ..., 15}
/ cond4 ∈ {eq, ne, cc/hs, cs/lo,
ge, lt, mi, pl, ls, gt, le, hi, vs, vc, qs, al}
II.
d ∈
{0, 1, ..., 15}
/ cond4 ∈ {eq, ne, cc/hs, cs/lo, ge, lt, mi, pl,
ls, gt, le, hi, vs, vc, qs, al}
/ imm ∈ {-128, -127, ..., 127}
MOVH – Move dados para alta parte da meia palavra do registrador
Descrição: Move um valor para a alta parte da meia palavra de um
registrador. A parte baixa da meia palavra é zerada. Todas as
bandeiras são inalteradas.
Operação:
I.
Rd ← imm16<<16;
Sintaxe:
I.
movh
Rd, imm
Operandos:
I.
d ∈ {0, 1, ..., 15}
/ imm ∈ {0, 1, ..., 65535}
Nenhum comentário:
Postar um comentário