Я не прошу дать оценку.
(Если бы это было так, я бы сделал это сам.)
Мой вопрос:
Я предпочитаю избегать косвенных/индексных адресов для удобства.
В качестве замены я часто использую немедленную, абсолютную или регистрационную адресацию.
Код:
; %esi has the array address. Say we iterate a doubleword (4bytes) array.
; %ecx is the array elements count
(0x98767) myloop:
... ;do whatever with %esi
add $4, %esi
dec %ecx
jnz 0x98767;
Здесь у нас есть сериализованная комбо (dec и jnz), которая предотвращает надлежащее выполнение вне порядка (зависимость).
Есть ли способ избежать этого? (Я не эксперт по сборке).