спасите меня.....люди......
какой же не понятный этот ассемблер....
необходимо сделать вставку ассемлера в С++
дан пример: |S(Ai + Bi)| * X + X^2
на с++ все верно а на ассемблере где то ошибка....кто понимает помогите мне
#include "stdafx.h"
#include "iostream"
#include "windows.h"

int a[3];
int b[3];

int my_c(int x)
{
int pos,i;
pos=0;
int sum=0;
for(i=0;i<3;i++)
{
pos=0;
{
sum= sum+(a[pos]+ b[i]);
pos++;
}
}
sum=sum*x;

int pow=0;
pow=x*x;

sum= sum+pow;

return sum;
}

int my_assembler(int x)
{
int sum=0, pos=0, pow=0, elem_b=0;

__asm
{
MOV eax,0
MOV ebx,0


MOV ecx,3
MOV esi,0

//вычисление суммы массивов
cycle_i:
PUSH ecx

MOV ecx,3
MOV pos,0

MOV esi,pos
MOV eax,a[esi]
ADD esi,4
MOV pos,esi

MOV esi,elem_b
MOV edx,b[esi]
ADD esi,4
MOV elem_b,esi

//сумма массивов
ADD eax,edx
ADD eax,sum
MOV sum,eax
SUB esi,4
MOV elem_b,esi
POP ecx

LOOP cycle_i

//умножаем sum на x
MOV eax,0
MOV ebx,0
MOV ecx,0
MOV eax,sum
MOV ecx,x
IMUL ecx
MOV sum,eax

//вычисляем квадрат x
MOV edx,x
MOV ecx,x
iMUL cx

//складываем с суммой квадрат x
MOV eax,sum
ADD eax,ecx
MOV sum,eax
}

return sum;
}

void main()
{
int i;
system("title Вычисление значения выражения");
printf("\tWasil'eva Julia CB-901 ZY\n");
printf("|S(Ai + Bi)| * X + X^2 \n");
for(int i=0; i<3; i++)
{
printf("Vvedite element A: ");
scanf("%d",&a[i]);
}
for(int i=0; i<3; i++)
{
printf("Vvedite element B: ");
scanf("%d",&b[i]);
}
int x=0;
printf("Vvedite chislo X: ");
scanf("%d",&x);

printf("C++=%i\n",my_c(x));
printf("Otvet=i\n",my_assembler(x));
system("pause");
}

заранее спасибо)