Frage

Ich verstehe nicht, was der Unterschied ist.

War es hilfreich?

Lösung

Wenn Sie Anweisungen wie movsb verwenden, wird si als berücksichtigt Source-Register, während di als das betrachtet wird DReisezielregister.Aber es sind beides normale x86-Register.

Andere Tipps

Meine Baugruppe ist etwas eingerostet, aber das eine ist der Quellindex, das andere der Zielindex.Eine Anweisung wie movsb kopiert ein Byte von dem Speicherort, auf den gezeigt wird SI, und verschieben Sie es an den Speicherort, auf den gezeigt wird DI, und erhöhen Sie dann beide, wenn Sie also das unter gespeicherte Byte kopieren möchten SI+1 Zu DI+1, es ist nur eine weitere movsb-Anweisung erforderlich.

SI steht für Quelle-Index. Source-Index ist die Verwendung als ein Zeiger auf das aktuelle Zeichen in einer Befehlsfolge gelesen wird (LODS, MOVs oder CMPS). Source-Index ist auch als ein Offset Bx oder Bp hinzuzufügen, wenn dabei die indirekte Adressierung.
Beispiel:

MOV [Bx + SI] , Ax  

Dieser Befehl kopiert den Inhalt von Ax in den Speicherplatz, dessen Adresse die Summe der Bx und SI.

DI steht für Zielindex, als ein Zeiger auf das aktuelle Zeichen verwendet wird in einer String Anweisung geschrieben oder verglichen.

Es ist auch als ein Offset wie SI.

wie oben di gesagt steht für Zielindex und si steht für Quelle-Index, wenn wir bewegen Daten aus dem Speicher wollen wir nutzen si zB mov ax, [si]. und wenn wir Daten bewegen, um den Speicher wollen wir benutzen di. zB mov [di], ax

beide sind 16-Bit-Register und kann nicht in 8 Bit aufgeteilt werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top