Формула адресации: [base + scale·index + disp]

Каждую итерацию m0 читает подряд от указателя, а m1 целится по полной формуле. Жми «Шаг» и следи, как складывается адрес.

[base+scale·index+disp]
base — регистр-указатель (здесь srcq) scale — только 1, 2, 4 или 8 · index — регистр (здесь r1q) disp — константа, известная при сборке (здесь 3+mmsize)

    
Калькулятор адреса — откуда читает m1
[
base · srcq
+
2 · r1q
+
disp · 3+1619
] =
адрес
disp 3 + mmsize — арифметика между константами: ассемблер свернул её в 19 ещё при сборке. Процессору достаётся уже готовое число.
Память (RAM) — байты по адресам 1000–1079
CPU — регистры
srcq
base — «откуда»
1000
r1q
index и счётчик
?
после dec
m0пусто
m1пусто
окно m0 — 16 байт от srcq окно m1 — 16 байт от вычисленного адреса srcq — указатель тусклые — уже пройдено указателем