Тут ещё надо учитывать, что время доступа тратится на считывание потока команд из памяти...
Одна команда на перенос слова... Плюс одна команда для случая с SOB или две без оного или даже более в других случаях...
Итого на копирование одного слова - выборка двух команд из той же памяти, как минимум.
Можно провести оптимизацию кода за счёт увеличения объёма кода. Ну на 30% быстрее...
Возможно ускорение будет ещё более за счёт предвыборки... Но это не точно. Надо смотреть каждый аппаратный случай отдельно.
Типа того :
Код:
mov #100., R4
clr VSYCNT
10$: mov #BUF1, R0
mov #BUF2, R1
mov #500., R3
20$: mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
mov (R0)+, (R1)+
; SOB в коде выполняется в 10. раз реже :)
sob R3, 20$
sob R4, 10$
Плюс-минус можно оценить по скорости копирование на(с) VM: для компьютеров с MMU