Wie funktioniert die Standard-C-Funktion "memcpy"? Es muss ein (großes) Stück RAM in einen anderen Bereich im RAM kopieren. Da ich weiß, dass man nicht direkt von RAM zu RAM in Assembly wechseln kann (mit der mov-Anweisung), nehme ich an, dass es beim Kopieren ein CPU-Register als Zwischenspeicher verwendet.Wie funktioniert die interne Implementierung von memcpy?
Aber wie kopiert es? Nach Blöcken (wie würde es nach Blöcken kopieren?), Nach einzelnen Bytes (char) oder dem größten Datentyp, den sie haben (lange long double kopieren - das sind 12 Bytes auf meinem System).
EDIT: Ok anscheinend können Sie Daten aus dem RAM bewegen direkt auf RAM, ich bin kein Montag Experte und alles, was ich gelernt habe, über Assembly aus diesem Dokument (X86 assembly guide), die über den MOV-Befehl in dem Abschnitt erwähnt, dass Sie können nicht von RAM zu RAM wechseln. Anscheinend stimmt das nicht.
Dies ist plattformspezifisch. Bitte geben Sie eine Plattform an. –
Ich benutze Linux, Mac & Windows (32-Bit, 64-Bit und 32-Bit), aber ich stellte diese Frage bei der Verwendung von Linux. – hddh