Как работает стандартная функция C memcpy? Он должен скопировать (большую) часть ОЗУ в другую область в ОЗУ. Поскольку я знаю, что вы не можете двигаться прямо из ОЗУ в ОЗУ в сборке (с инструкцией mov), поэтому я предполагаю, что при копировании он использует регистр CPU в качестве промежуточной памяти?
Но как он копируется? Блоками (как бы они копируются блоками?), Отдельными байтами (char) или самым большим типом данных, который у них есть (копия в длинном длинном двойном - что составляет 12 байтов в моей системе).
EDIT: Хорошо, видимо, вы можете напрямую перемещать данные из ОЗУ в ОЗУ.. Я не эксперт по сборке, и все, что я узнал о сборке, из этого документа (Руководство по сборке X86), в котором упоминается раздел о команде mov, которую вы не можете перенести из ОЗУ в ОЗУ. По-видимому, это не так.