Wie funktioniert die interne Implementierung von memcpy?

Wie funktioniert die Standard-C-Funktion 'memcpy'? Es muss ein (großes) Stück RAM in einen anderen Bereich des RAM kopiert werden. Da ich weiß, dass Sie in der Baugruppe (mit der Anweisung mov) nicht direkt von RAM zu RAM wechseln können, wird beim Kopieren vermutlich ein CPU-Register als Zwischenspeicher verwendet.

Aber wie kopiert es? Nach Blöcken (wie würde es nach Blöcken kopieren?), Nach einzelnen Bytes (char) oder nach dem größten Datentyp, den sie haben (Kopieren in langen, langen Doppelwerten - das sind 12 Bytes auf meinem System).

BEARBEITEN:Ok anscheinend können Sie Daten von RAM zu RAM direkt verschiebenIch bin kein Montageexperte, und alles, was ich über die Montage gelernt habe, ist aus diesem Dokument (X86-Montageanleitung), der im Abschnitt über die mov-Anweisung erwähnt, dass Sie nicht von RAM zu RAM wechseln können. Anscheinend stimmt das nicht.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage