Movimento / Carregamento


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