![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
julia_lisha |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 147 Регистрация: 19.12.2009 Из: Omsk Город: omsk Учебное заведение: ОмГУ ![]() |
спасите меня.....люди......
какой же не понятный этот ассемблер.... необходимо сделать вставку ассемлера в С++ дан пример: |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"); } заранее спасибо) |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.5.2025, 0:26 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru