Domanda

Non capisco qual è la differenza.

È stato utile?

Soluzione

Quando si utilizza istruzioni come movsb, si è considerato come il s ource registrarsi, mentre di è considerato come D il registro ESTINAZIONE. Ma sono entrambi normali registri x86.

Altri suggerimenti

Il mio montaggio è un po 'arrugginito, ma uno è l'indice di origine, l'altro indice della destinazione. Un'istruzione come movsb copierà un byte dalla locazione di memoria puntato dal SI, e spostarlo nella posizione di memoria puntato da DI, e quindi incrementare entrambi, quindi se si desidera copiare il byte conservato a SI+1 a DI+1, solo prende un ulteriore istruzione movsb.

SI sta per indice di origine. indice di origine è l'uso come un puntatore al carattere corrente viene letto in un'istruzione stringa (LODS, MOV, o CMPS). Indice sorgente è disponibile anche come un offset per aggiungere Bx o Bp quando si fa indirizzamento indiretto.
Esempio:

MOV [Bx + SI] , Ax  

Questa istruzione copia il contenuto di Ax nella locazione di memoria il cui indirizzo è la somma del Bx e SI.

DI sta per indice di destinazione, usato come un puntatore al carattere corrente o in scrittura rispetto a un'istruzione di stringa.

E 'disponibile anche come un offset, proprio come SI.

come detto sopra di acronimo di indice di destinazione e si sta per indice di origine, quando vogliamo spostare i dati dalla memoria usiamo SI esempio, mov ax, [si]. e quando vogliamo spostare i dati nella memoria che usiamo di. ad esempio, mov [di], ax

sono entrambi a 16 bit di registro e non può essere diviso in 8 bit

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top