Программа на языке ассемблера (сумма различий числа в массиве)

В качестве домашнего задания (я не собираюсь его приукрашивать) мне поручили написать 32-битную программу на ассемблере, которая использует цикл и индексированную адресацию для вычисления суммы промежутков между последовательными элементами массива, которые в неубывающем порядке. (Пример: dwarray dword 0,2,5,9,10)

Чего я не знаю, как сделать, так это вычесть n-й элемент массива из n-го элемента массива с помощью цикла. Если бы я это сделал, то я бы сохранил результат в другом регистре и продолжал добавлять результаты в этот регистр, пока не будет достигнут последний элемент. Я только ищу, чтобы мне указали в правильном направлении (я не ищу ответа). У кого-нибудь есть предложения?


person user3727648    schedule 12.10.2014    source источник


Ответы (1)


Поскольку вы будете использовать цикл, вам понадобится счетчик цикла, равный количеству элементов в массиве минус 1.
Удобными инструкциями будут add eax,[ebx+ecx*4] и sub eax,[ebx+ecx*4-4].

person Sep Roland    schedule 12.10.2014
comment
Как на языке ассемблера сделать счетчик цикла равным количеству элементов в массиве минус 1? - person user3727648; 13.10.2014