0 / 0 / 0
Регистрация: 09.12.2018
Сообщений: 38
1

Некорректно работает программа

14.05.2019, 20:53. Показов 450. Ответов 1
Метки нет (Все метки)

По заданию мне нужно найти сумму максимального и минимального элементов, но что-то не правильно работает, решите пожалуйста проблему!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int N = 5;
    int res = 0;
    int a[] = { 2, 8, 46, 32, 1 };
    __asm 
    {
        mov     esi, a;
        mov     eax, esi; //Max
        mov     ebx, esi; //Min
        mov     ecx, N;
        dec     ecx
        add     esi, 4; //move to next array element
        mMain :
        cmp esi, eax
            jl      mSkMax
            mov     eax, esi;// Max
            mSkMax :
        cmp esi, ebx
            jg      mSkMin
            mov     ebx, esi; //Min
            mSkMin :
        add     esi, 4; //move to next array element
            loop    mMain
            add     eax, ebx; //Max + Mi
            mov res, eax;
    }
    cout << "Сумма наибольшего и наименьшего элементов:" << res;
    system("pause > null");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2019, 20:53
Ответы с готовыми решениями:

Некорректно работает программа
Добрый вечер ! мне нужно найти произведение всех нечетных элементов массива , но почему то...

Некорректно работает программа
Написал программу, при работе проскакивает через три цикла for сразу на writeln. В чём может быть...

Некорректно работает программа на С
Все примеры из учебника используют переменные типа int но мне приходится использовать переменные...

Некорректно работает программа
Сам код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,...

1
Модератор
Эксперт по электронике
7696 / 3851 / 1492
Регистрация: 01.02.2015
Сообщений: 11,897
Записей в блоге: 2
14.05.2019, 21:03 2
C++
12
13
14
15
16
17
18
19
20
21
22
23
24
lea esi, [a]
mov ecx, [N]
mov ebx, [esi]  //min
mov edx, ebx  //max
_for:
  lodsd
  cmp ebx, eax  //ebx=(ebx>eax? eax:ebx)
  cmovg ebx, eax
  cmp edx, eax  //edx=(edx<eax?eax:edx)
  cmovl edx, eax
loop _for
sub edx, ebx
mov [res], edx
Там ещё может понадобится в начале сохранить, а в конце восстановить все регистры кроме eax.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2019, 21:03

Программа работает некорректно
Здравствуйте! Возникла проблема с программой, она работает не так как надо. Нужно из одного...

Некорректно работает программа
Здравствуйте, прошу помощи в выполнении следующего задания: &quot;Дана последовательность содержащая от...

Некорректно работает программа
Когда нет файла настроек (cfg) программа ставит флаг на пункте &quot;Выход&quot; и передает его кнопке,этот...

Некорректно работает программа
Здравствуйте. Может, кто-то сможет помочь разобраться в чем ошибка вот в этой программе. Используя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.