Найти максимальное отрицательное число в массиве - Assembler

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

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

в массиве А(20).Найти максимальное отрицательное число.

Решение задачи: «Найти максимальное отрицательное число в массиве»

textual
Листинг программы
  1. ;
  2. .MODEL TINY
  3. ;
  4. .DATA
  5. sbArray     DB    23, 87, 90, -74, 68, -15, 75, 39, -97, 82, \
  6.                   -42, 88, 32, -5, 10, -17, -80, -2, 20, 42
  7. ;
  8. .CODE
  9.       ORG   100h
  10. START:
  11.       LEA   SI, sbArray
  12.       MOV   CX, LengthOf sbArray
  13.       MOV   AH, 127     ; AH = Min. (init. by max. for byte)
  14. LOAD_ITEM:
  15.       LODSB
  16.       CMP   AL, AH
  17.       JGE   NEXT_ITEM
  18.       MOV   AH, AL
  19. NEXT_ITEM:
  20.       LOOP  LOAD_ITEM
  21.       RET
  22. ;
  23. END START
  24. ;

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

  1. .MODEL TINY - устанавливает модель памяти для программы (в данном случае модель TINY, можно выбрать другие модели в зависимости от требований к программе)
  2. .DATA - сегмент данных, в котором хранятся переменные программы
  3. sbArray DB 23, 87, 90, -74, 68, -15, 75, 39, -97, 82, -42, 88, 32, -5, 10, -17, -80, -2, 20, 42 - массив, в котором нужно найти максимальное отрицательное число
  4. .CODE - сегмент кода, в котором хранятся инструкции программы
  5. START: - метка начала выполнения программы
  6. LEA SI, sbArray - перемещает указатель на первый элемент массива в регистр SI
  7. MOV CX, LengthOf sbArray - перемещает длину массива в регистр CX
  8. MOV AH, 127 - инициализирует регистр AH максимальным значением для byte (в данном случае 127)
  9. LOAD_ITEM: - метка цикла, который будет выполняться до тех пор, пока не будут загружены все элементы массива
  10. LODSB - загружает байт из массива в регистр AL и увеличивает указатель на следующий элемент массива
  11. CMP AL, AH - сравнивает текущий элемент массива с максимальным значением, хранящимся в регистре AH
  12. JGE NEXT_ITEM - если текущий элемент больше максимального значения, то переходит к следующему элементу
  13. MOV AH, AL - если текущий элемент является максимальным значением, то сохраняет его в регистре AH
  14. NEXT_ITEM: LOOP LOAD_ITEM - переходит к следующей итерации цикла до тех пор, пока не будут загружены все элементы массива
  15. RET - возвращает управление в вызывающую программу
  16. END START - указывает на конец программы
  17. ; - символ конца строки комментария

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


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

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

6   голосов , оценка 4.167 из 5

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

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

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