Вывести индексы первого и последнего из элементов массива, удовлетворяющих условию - Assembler

Узнай цену своей работы

Формулировка задачи:

Подкиньте идею, как сделать. Или код, если он не тяжёлый, пожалуйста. На tasm или fasm "Данный целочисленный массив А размера 10. Вывести номер первого и последнего из его элементов А [i], удовлетворяющих двойной неравенства: А [1] <A [i] <А [10]."

Решение задачи: «Вывести индексы первого и последнего из элементов массива, удовлетворяющих условию»

textual
Листинг программы
  1. mov first,0
  2. mov last,0
  3. mov si,1
  4. mov cx,8
  5. get:
  6.     mov al,byte ptr mas[si]
  7.        
  8.     cmp al,byte ptr mas[0]
  9.     jng next
  10.        
  11.     cmp al,byte ptr mas[9]
  12.     jnl next
  13.        
  14.     cmp first,0
  15.     jnz skip
  16.        
  17.     mov first,si
  18.        
  19.     skip:
  20.     mov last,si
  21.        
  22.     next:
  23.     inc si
  24. loop get

Объяснение кода листинга программы

В данном коде реализован алгоритм поиска первого и последнего элемента массива, удовлетворяющего условию. Примечание: При описании работы алгоритма мы будем использовать следующие номера регистра:

  1. first - индекс первого элемента, удовлетворяющего условию
  2. last - индекс последнего элемента, удовлетворяющего условию
  3. si - текущий индекс элемента, с которого начинается поиск
  4. cx - количество элементов, которые необходимо проверить Код выполняет следующие действия:
  5. Инициализация first и last значением 0.
  6. Установка si равным 1.
  7. Установка cx равным 8 (предполагается, что это размер массива).
  8. Запуск цикла get.
  9. В каждой итерации цикла значение al сравнивается с первым и последним элементом массива (mas[0] и mas[9]). Если условие не выполняется, то происходит переход к следующей итерации.
  10. Если условие выполняется для всех элементов, то first и last устанавливаются равными si.
  11. Если условие выполняется хотя бы для одного элемента, то происходит переход к следующей итерации.
  12. После выполнения цикла, first и last содержат индексы первого и последнего элемента, удовлетворяющего условию. Таким образом, в результате выполнения данного кода будут определены индексы первого и последнего элемента массива, удовлетворяющего условию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы