Здравствуйте, гость ( Вход | Регистрация )
| julia_lisha |
4.2.2010, 11:22
Сообщение
#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"); } заранее спасибо) |
![]() ![]() |
| Евгений М. |
4.2.2010, 11:52
Сообщение
#2
|
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 199 Регистрация: 6.11.2009 Город: Уфа Вы: студент |
|
julia_lisha ASSEMBLER 4.2.2010, 11:22
julia_lisha пишу в Microsoft Visual Studio 2005
S(Ai + Bi)-зн... 4.2.2010, 11:57
Евгений М.
В результате получается:
sum= sum+(a[0]+ b[0]);
s... 4.2.2010, 12:12
julia_lisha
по идеи должно быть так:
sum= sum+(a[0]+ b[0]);
... 4.2.2010, 12:23
Евгений М. Вот я исправил (точнее почистил) ассемблеровский к... 4.2.2010, 13:06
julia_lisha *YAHOO* Спасибо большое) 4.2.2010, 13:15
Евгений М.
*YAHOO* Спасибо большое)
"- Яху, спасибо бо... 4.2.2010, 13:19
julia_lisha //вычисление суммы массивов
cycle_i:
MO... 5.2.2010, 19:48
Евгений М. Хочу сказать, что "сумма массивов" в наш... 6.2.2010, 5:15
julia_lisha
да да, логично я понимая средствами ассм не знаю... 6.2.2010, 13:31
julia_lisha я все сделала)
функция модуля)
abso: neg s... 6.2.2010, 15:03![]() ![]() |
|
Текстовая версия | Сейчас: 19.4.2026, 7:53 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru