как загрузить каждый второй номер в регистр с помощью инструкции 'LODSB'

У меня есть код, где я нахожу сумму 10 чисел из таблицы. Как найти правильную сумму каждого второго числа? Нужно как-то работать с загрузкой каждого второго числа (lodsb) в регистр eax? Или нужно что-то сделать с инструкцией add?

    cld

    mov esi, OFFSET numbers ; in `numbers` i have 10 numbers
    mov edi, esi
    
    mov ecx, 10
    myLoop:
    push ecx
        lodsb ; here i add each digit in turn to the `eax` register
        add sum, eax ; here i summarize the numbers
    pop ecx
    loop myLoop
    
    mov eax, sum

Ответы (1 шт):

Автор решения: Илья К

Используй команду lodsb дважды. Команда pop ecx лишняя. в качестве сумматора лучше использовать не ячейку памяти а еще один регистр, так будет быстрей.

→ Ссылка