Deslocamento

São 5 instruções disponíveis a saber:

ASR – Deslocamento aritmética direita

Descrição: Muda todos os bits num registrador para a direita a quantidade de bits especificados pelos cinco bits menos significativos do Ry ou um imediatos mantendo o sinal.

Operação: I. Rd ← ASR(Rx, Ry[4:0]);
II. Rd ← ASR(Rd, sa5);
III. Rd ← ASR(Rs, sa5);

Sintaxe: I. asr Rd, Rx, Ry
II. asr Rd, sa
III. asr Rd, Rs, sa

Operandos: I. d, x, y ∈ {0, 1, ..., 15}
II. d ∈ {0, 1, ..., 15}
sa ∈ {0, 1, ..., 31}
III. {d,s} ∈ {0, 1, ..., 15}
sa ∈ {0, 1, ..., 31} 

LSL – Deslocamento lógico à esquerda

Descrição: desloca todos os bits à esquerda de um registrador especificado. O valor do deslocamento pode ser especificado por um registrador ou um valor imediato. Zeros são deslocadas para os bit menos significativo. O último bit que é deslocada para fora é colocado em carry.

Operação: I. Rd ← LSL(Rx, Ry[4:0]);
II. Rd ← LSL(Rd, sa5);
III. Rd ← LSL(Rs, sa5);

Sintaxe: I. lsl Rd, Rx, Ry
II. lsl Rd, sa
III. lsl Rd, Rs, sa

Operandos: I. {d, x, y} ∈ {0, 1, ..., 15}
II. d ∈ {0, 1, ..., 15} / sa ∈ {0, 1, ..., 31}
III. {d,s} ∈ {0, 1, ..., 15} / sa ∈ {0, 1, ..., 31}

  

LSR – deslocamento lógico à direito

Descrição: deslocamento à direita todos os bits do registrador especificado. O valor do deslocamento pode ser especificado por um registrador ou um valor imediato. Zeros são deslocados para o bit mais significativo.
Operação: I. Rd ← LSR(Rx, Ry[4:0]);
II. Rd ← LSR(Rd, sa5);
III. Rd ← LSR(Rs, sa5);
Sintaxe: I. lsr Rd, Rx, Ry
II. lsr Rd, sa
III. lsr Rd, Rs, sa
Operandos: I. {d, x, y} ∈ {0, 1, ..., 15}
II. d ∈ {0, 1, ..., 15} / sa ∈ {0, 1, ..., 31}
III. {d,s} ∈ {0, 1, ..., 15} / sa ∈ {0, 1, ..., 31} 

ROL – rotacional para a esquerda através transporte

Descrição: Desloca todos os bits do registrador Rd para a esquerda. A bandeira C é deslocado para a LSB. O MSB é deslocado para a bandeira C.
Operação: I. C ́ ← Rd[31];
Rd ← Rd << 1;
Rd[0] ← C;
C ← C ́;
Sintaxe: I. rol Rd
Operandos: I. d ∈ {0, 1, ..., 15} 

ROR – rotaciona para a direita através transporte

Descrição: Deslocar todos os bits em Rd um lugar para a direita. A bandeira C é deslocada para o MSB. A LSB é deslocado para a bandeira C.
Operação: I. C ́ ← Rd[0];
Rd ← Rd >> 1;
Rd[31] ← C;
C ← C ́;
Sintaxe: I. ror Rd
Operandos: I. d ∈ {0, 1, ..., 15} 

Nenhum comentário:

Postar um comentário