Другими словами, есть ли какой-нибудь случай, который может понадобиться этой инструкции?
Из инструкций Intel Instructions Manual это инструкция:
Загрузите (E) байты CX из DS: [(E) SI] в AL.
Возьмем следующий пример в NASM:
section .data
src: db 0, 1, 2, 3
section .code
mov esi, src
mov ecx, 4
rep lodsb ; mov al, byte[esi + ecx -1]; ecx++
Пока выполняется команда rep lodsb
, у меня нет никакого контроля над значением, загруженным в al
. Все, что я могу сделать, это ждать, пока инструкция не завершится, чтобы получить последнее значение al
, которое, конечно, я могу получить напрямую, без цикла.
Тот же вопрос касается остальной части семейства: REP LODS AX
, REP LODS EAX
и REP LODS RAX
.