Так же, как и процессор 386 DX, процессор i486 выполняет команды работы со
строками медленнее, чем команды загрузки и сохранения. Например, команда LODS :
+--------------------------------------------------------------+| Команда | Такты ЦПУ 386(ТМ) DX | Такты ЦПУ i486(TM) |+------------------+----------------------+--------------------|| mov eax, [esi] | 4 | 1 || add esi, 4 | 2 | 1 || | | || lods | 5 | 4 |+--------------------------------------------------------------+ Команда LODS выполняет больше действий, чем отдельная команда MOV, она также
обновляет регистр ESI. Однако, если нет необходимости в обновлении регистра, то
команда MOV приводит к чистому сохранению 3 тактов и на процессоре 386 DX, и на
процессоре i486. Печальным компромиссом служит то, что команда LODS короче
команды MOV.
Также и при не повторяющемся использовании отдельные команды MOV всегда будут
выполняться быстрее, чем строчная команда MOVS. И даже в цикле RET, если цикл
достаточно короткий, быстрее использовать отдельные команды загрузки и
сохранения, чем устанавливать значения для REP'MOVS. Компромисом вновь является
противостояние скорости выполнения и размеров кода, при использовании команды
REP'MOVS цикл будет короче, но медленнее. Однако, как указывалось выше, длинная
последовательность команд загрузки и сохранения может закрыть доступ модулю
предварительной выборки к предварительному формированию очереди команд и таким
образом затормозить процессор, поэтому не рекомендуется перемещать более 16 байт
командами загрузки и сохранения без использования между ними команд, не
работающих с памятью, чтобы позволить устройствы предварительной выборки
обратиться к кэш-памяти.
Аналогичные оптимизации могут быть проведены для команды STOS и других команд
работы со строками. Такие замены команд работы со строками влияют на выполнение
программы на 386 процессоре.