Просто хочу начать с предупреждения, что я новичок в языках ассемблера в целом.Я пытаюсь пройти через массив с помощью цикла, а также присваивать элементы из массива переменным.Я выбрал способ сделать это на c ++, но когда дело доходит до перевода его на ассемблер, я полностью потерян и не могу найти ничего полезного в Интернете.
Что происходит, я пересекаюмассив с 16 элементами в нем, но мне нужно получить доступ к 4 элементам одновременно, так что есть наложение.Поэтому, когда я = 12, он будет обращаться к элементам массива array [12], ... array [15].
for (int i = 0; i < 13; i++)
{
w = array[i];
x = array[i+1];
y = array[i+2];
z = array[i+3];
result = function(w, x, y, z);
// output
}
int function (int w, int x, int y, int z)
{
return (w-x)*(y+z);
}
Это то, что у меня есть для ассемблерного кода.Это в значительной степени просто оболочка, но когда дело доходит до назначения переменных, я немного растерялся.
loop:
cmp %13, %rcx
call myfunction /* insert function call to perform a computation on all 4 variables */
/* insert call to output the variables with the result of the computation */
inc %rcx
jmp loop