Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ассемблер - цикл

39K
02 июня 2008 года
DrAlexx2121
1 / / 02.06.2008
Код:
#include <windows.h>
   char bufrus[256];
   char * rus(const char * text)
   {
   CharToOem(text, bufrus);
   return bufrus;
   }
   #include <math.h>
   #include <conio.h>
   #include <iostream.h>
   int main()
   {
   while(1){
   int a, b, c, d, e, x, sum;
   cout << rus("Введите значения переменных.") << endl;
   cout << "A: ";
   cin >> a;
   clrscr();
   cout << "B: ";
   cin >> b;
   clrscr();
   cout << "C: ";
   cin >> c;
   clrscr();
   cout << "D: ";
   cin >> d;
   clrscr();
   cout << "E: ";
   cin >> e;
   clrscr();
   cout << "X: ";
   cin >> x;
   clrscr();
   cout  <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<x<< endl;

   sum=(d*x+c*x*x+b*x*x*x+a*x*x*x*x)/e;
   cout << rus("Контрольное: ") << sum << endl;

   __asm{
   //d*x
   mov eax, d;
   mov ecx, x;
   dec ecx;
   Lab00:  
   add eax, d;
   dec ecx;
   cmp ecx, 0;
   jne Lab00;
   mov sum, eax;

   //c*x*x
   mov eax, c;
   mov ebx, x;
   mov ecx, x;
   dec ecx;
   Lab01:
   add ebx, x;
   dec ecx;
   cmp ecx, 0;
   jne Lab01;
   mov ecx, ebx;
   dec ecx;
   Lab02:
   add eax, c;
   dec ecx;
   cmp ecx, 0;
   jne Lab02;
   add sum, eax;
   mov eax, ebx;

   //b*x*x*x
   mul eax, x;
   mov ebx, eax;
   mov eax, b;
   mov ecx, ebx;
   dec ecx;
   Lab03:
   add eax, b;
   dec ecx;
   cmp ecx, 0;
   jne Lab03;
   add sum, eax;
   mov eax, ebx;

   //a*x*x*x*x
   mul eax, x;
   mov ebx, eax;
   mov eax, a;
   mov ecx, ebx;
   dec ecx;
   Lab04:
   add eax, a;
   dec ecx;
   cmp ecx, 0;
   jne Lab04;
   add sum, eax;
   Lab05:
   sub eax, e;
   inc ecx;
   cmp eax, e;
   jnbe Lab05;
   mov eax, ecx;
   mov sum, eax;
   }
   cout << rus("С помощью вставки: ") << sum << endl;
   cout << rus("Нажмите любую клавишу, чтобы продолжить, или ")<< 'q';
   cout << rus(", чтобы выйти. \n");
   if (getch()== 'q') break;
   clrscr();
   }
   }

................
Вот такая задача по вычислению выражения - где-то после jne Lab04; неправильно написан цикл, вместо правильного выражения он выдаёт только половину(((

[COLOR="Red"]Оформляй код по Правилам.[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог