Задание, вариант 3: “Поиск максимального значения”
Написать функцию FindMax, которая находит максимальное значение в массиве 32-битных целых чисел со знаком (типа long int). Массив может быть как статический, так и динамический. Результат функции — наибольший элемент массива. Перед выходом из функции это значение должно быть помещено в регистр eax, и таким образом оно будет возвращено в вызывающую программу. Еще один результат — индекс (порядковый номер) максимального элемента в массиве — возвращается через параметр функции, который представляет собой указатель на переменную типа long int. Индексы нумеруются от 0, как принято в C++. Если максимум встречается несколько раз, берётся наименьший индекс. Возвращать индекс нужно только в том случае, если указатель на переменную не равен нулю. Этот параметр по умолчанию считается равным нулю. Если массив имеет длину 0, функция должна возвращать значение 0x80000000 (т.е. -231) и соответствующий индекс -1. Функция имеет следующий заголовок:
long FindMax(long a[], long n, long *i = 0)
Здесь a — указатель на массив, в котором ищется максимальный элемент, n — количество элементов массива, i — указатель на переменную, в которой возвращается индекс найденного максимального элемента (если i=0, то индекс не возвращается).
Проверить работу функции FindMax для четырёх тестовых примеров: когда размер массива равен 0, когда параметр i не задан (равен нулю), когда максимальное значение в массиве встречается один и более одного раза.
Вывести результаты на экран: исходный массив, найденное значение максимума и индекс максимального элемента (если параметр i задан).
Нужно написать только ассемблерную функцию.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |