Pregunta

No entiendo cuál es la diferencia.

¿Fue útil?

Solución

Cuando se está usando instrucciones como movsb, si se considera que el s ource registro, mientras que di es considerado como el d registro detino. Pero son ambos registros normales x86.

Otros consejos

Mi montaje es un poco oxidado, pero uno es el Índice de Fuente, el otro índice del destino. Una instrucción como movsb copiará un byte desde la posición de memoria apuntado por SI, y moverlo a la posición de memoria apuntada por DI, y luego incrementar tanto, por lo que si desea copiar el byte almacenado en SI+1 a DI+1, sólo toma una instrucción más movsb.

SI significa índice de fuente. Índice de origen es su uso como un puntero al carácter actual que se lee en una instrucción de cadena (LODS, MOVS o CMPS). Índice fuente también está disponible como una compensación para agregar Bx o BP cuando se realiza el direccionamiento indirecto.
ejemplo:

MOV [Bx + SI] , Ax  

Esta instrucción copia el contenido del hacha en la posición de memoria cuya dirección es la suma de la Bx y SI.

DI es sinónimo de índice de destino, que se utiliza como un puntero al carácter actual o escritura de comparación en una instrucción de cadena.

También está disponible como una compensación igual que SI.

como se dijo anteriormente di sinónimo de índice de destino y si es sinónimo de índice de fuente, cuando queremos mover datos desde la memoria Si utilizamos por ejemplo, mov ax, [si]. y cuando queremos mover los datos a la memoria que utilizamos di. por ejemplo, mov [di], hacha

ambos son de 16 bits del registro y no se puede dividir en 8 bits

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top