Lorsque vous utilisez des instructions comme movsb, si est considéré comme le source registre, tandis que di est considéré comme le destination registre. Mais ils sont tous les deux normal x86 registres.
Mon montage est un peu rouillé, mais l'un est la Source de l'Index, l'autre est l'Index de Destination. Une instruction comme movsb copie d'un octet à partir de l'emplacement mémoire pointé par SI, et le déplacer vers l'emplacement mémoire pointé par DI, et puis ajouter un à la fois, donc si vous souhaitez copier l'octet stocké à SI+1 à DI+1, il ne prend plus de movsb instruction.
SI est synonyme de source de l'index. Source de l'indice de l'utiliser comme un pointeur sur le caractère actuel en cours de lecture dans une chaîne d'instructions(LODS,MOV, ou CMP). Source de l'indice est également disponible comme un décalage à ajouter Bx ou Bp lorsque vous faites l'adressage indirect.
exemple:
MOV [Bx + SI] , Ax
Cette instruction copie le contenu de Ax dans l'emplacement mémoire dont l'adresse est la somme de la Bx et SI.
DI signifie index de destination, utilisé comme un pointeur sur le caractère courant écrit ou par rapport à une chaîne d'instructions.
Il est également disponible comme un décalage comme SI.
comme dit ci-dessus di représente index de destination et si est synonyme de source de l'indice, lorsque l'on veut déplacer les données de la mémoire nous utilisons si par exemple, mov ax,[si].
et lorsque l'on veut déplacer les données vers la mémoire nous utilisons di. par exemple, mov [di],ax
les deux sont en 16 bits registre et ne peut pas être divisée en 8 bits
vous pouvez utiliser à la fois mov [si],ax mov ax, [di], si vous êtes en utilisant de simples instruction MOV, ils sont fondamentalement les mêmes, tout comme vous pouvez utiliser mov [bx], ax. Lorsque vous utilisez des instructions comme MOVSB puis le CPU suppose le SI est la source et la DI est la destination, mais quand vous le faites manuellement, vous pouvez utiliser soit de faire les deux.
Lorsque vous utilisez des instructions comme movsb, si est considéré comme le source registre, tandis que di est considéré comme le destination registre. Mais ils sont tous les deux normal x86 registres.
OriginalL'auteur Pierre Bourdon
Mon montage est un peu rouillé, mais l'un est la Source de l'Index, l'autre est l'Index de Destination. Une instruction comme
movsb
copie d'un octet à partir de l'emplacement mémoire pointé parSI
, et le déplacer vers l'emplacement mémoire pointé parDI
, et puis ajouter un à la fois, donc si vous souhaitez copier l'octet stocké àSI+1
àDI+1
, il ne prend plus de movsb instruction.OriginalL'auteur Michiel Buddingh
SI
est synonyme de source de l'index. Source de l'indice de l'utiliser comme un pointeur sur le caractère actuel en cours de lecture dans une chaîne d'instructions(LODS,MOV, ou CMP). Source de l'indice est également disponible comme un décalage à ajouter Bx ou Bp lorsque vous faites l'adressage indirect.exemple:
Cette instruction copie le contenu de Ax dans l'emplacement mémoire dont l'adresse est la somme de la Bx et SI.
DI
signifie index de destination, utilisé comme un pointeur sur le caractère courant écrit ou par rapport à une chaîne d'instructions.Il est également disponible comme un décalage comme SI.
OriginalL'auteur Umair
comme dit ci-dessus di représente index de destination et si est synonyme de source de l'indice, lorsque l'on veut déplacer les données de la mémoire nous utilisons si par exemple, mov ax,[si].
et lorsque l'on veut déplacer les données vers la mémoire nous utilisons di. par exemple, mov [di],ax
les deux sont en 16 bits registre et ne peut pas être divisée en 8 bits
OriginalL'auteur anjali dhasmana