Я новичок в кодировании ассемблера и встраивании его в C ++. Я пытаюсь добавить целые числа в массив с использованием ассемблера.Это код, который у меня пока есть:
#include <iostream>
#include <stdio.h>
int x [] = {5,4,3,2,1};
int sumArray(int [5]);
int main()
{
sumArray(x);
printf_s("The sum of the array is %d");
}
int sumArray(int [5])
{
__asm
{
mov edi,OFFSET sumArray
mov ecx,5
mov eax,0
L1:
add eax,[edi]
add edi, TYPE sumArray
loop L1
}
}
Первоначальная проблема, с которой я столкнулся, была с mov ecx У меня было это как
mov ecx,LENGTHOF sumArray
но он не скомпилируется, поэтому я изменил его на 5, и он скомпилировался.Так что теперь, когда я запускаю программу, она ломается.Я использовал F11 в Visual Studio, чтобы переходить строка за строкой, чтобы увидеть, на какой строке программа разрывается, и программа разрывается при повторном прохождении цикла.
Так что, если кто-то может помочь мне понять, как я могуЯ позабочусь об этом.