>> Elettronica Tecnologia >  >> TV >> Telecomandi

Che cosa sono le istruzioni di spostamento e rotazione?

Istruzioni per il turno

Le istruzioni di spostamento spostano i bit di un registro a sinistra o a destra. Questo può essere utile per vari scopi, come ad esempio:

* Moltiplicazione o divisione per potenze di 2

* Estrazione o inserimento di bit specifici da un registro

* Inversione dell'ordine dei bit in un registro

Esistono due tipi principali di istruzioni di spostamento:spostamenti logici e spostamenti aritmetici.

* Cambiamenti logici sposta tutti i bit in un registro, incluso il bit di segno. Ciò significa che il valore del registro può cambiare dopo uno spostamento logico.

* Spostamenti aritmetici sposta solo i bit di dati in un registro, non il bit di segno. Ciò significa che il valore del registro non cambierà dopo uno spostamento aritmetico.

La tabella seguente mostra le diverse istruzioni di spostamento disponibili nella maggior parte dei processori:

| Istruzioni | Descrizione |

|---|---|

| "SHL" | Spostamento a sinistra logico |

| "SHR" | Spostamento a destra logico |

| `SAR` | Shift aritmetico a destra |

| `ROL` | Ruota a sinistra |

| `ROR` | Ruota a destra |

Istruzioni di rotazione

Le istruzioni di rotazione sono simili alle istruzioni di spostamento, tranne per il fatto che ruotano i bit di un registro invece di spostarli. Ciò significa che i bit da un'estremità del registro si sposteranno all'altra estremità.

Le istruzioni di rotazione possono essere utili per diversi scopi, tra cui:

* Generazione di buffer circolari

* Scambio del contenuto di due registri

* Implementazione di alcuni algoritmi crittografici

La tabella seguente mostra le diverse istruzioni di rotazione disponibili nella maggior parte dei processori:

| Istruzioni | Descrizione |

|---|---|

| `ROL` | Ruota a sinistra |

| `ROR` | Ruota a destra |

Esempi

Ecco alcuni esempi di come possono essere utilizzate le istruzioni di spostamento e rotazione:

* Per moltiplicare un numero per 2, puoi utilizzare l'istruzione di spostamento a sinistra. Ad esempio, il codice seguente moltiplica il valore nel registro "EAX" per 2:

```

shl eax, 1

```

* Per dividere un numero per 2, puoi utilizzare l'istruzione di spostamento a destra. Ad esempio, il codice seguente divide il valore nel registro "EAX" per 2:

```

shr eax, 1

```

* Per estrarre il byte meno significativo da un registro, è possibile utilizzare un'istruzione di spostamento a destra. Ad esempio, il codice seguente estrae il byte meno significativo dal registro "EAX" e lo memorizza nel registro "AL":

```

shr eax, 8

mov al, eax

```

* Per inserire un byte specifico in un registro, è possibile utilizzare un'istruzione di spostamento a sinistra. Ad esempio, il codice seguente inserisce il valore 0x12 nel byte meno significativo del registro "EAX":

```

movimento al, 0x12

shl eax, 8

```

* Per invertire l'ordine dei bit in un registro, è possibile utilizzare un'istruzione di rotazione a sinistra. Ad esempio, il codice seguente inverte l'ordine dei bit nel registro "EAX":

```

rolax, 8

```

  1. Strumenti essenziali per realizzare video sulla tua fotocamera mirrorless
  2. Chi ha inventato il cellulare LG cioccolato?
  3. Si può utilizzare una parabola come antenna Ota
  4. DIY Xbox Consigli per la manutenzione
  5. Come utilizzare Comic zelo per la tua iPad
  6. Come eliminare gli eventi da un calendario di Google Android