Я пытаюсь просто суммировать массив в сборке.
int main(){
int a[5] = {1, 2, 3, 4, 5};
int result;
_asm{
mov ecx, 5 ;set the counter for 5
mov eax, 0 ;zero eax
NXT: add eax, [esi*4+a] ;add array value
inc esi ;increase esi to read next value
LOOP NXT ;loop back to next
mov [result], eax ;mov eax into result
}
printf("result: %u",result);
Независимо от того, какое значение у массивов, оно всегда равно 2.
Япытаюсь запустить на Mac.
Я компилирую с помощью:
gcc -fasm-blocks -m32 -c sum.cpp
и связываюсь с
gcc -arch i386 -g -o sum sum.o
Я пробовал разные вещи, но могупохоже, что он суммирует массив.