Массив: Получить сумму членов последовательности, принадлежащих [2;9] - Assembler

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

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

Снова я , помогите с программой ( говоря простым языком , кто не занят ,или кого не затруднит , напишите ее -_-) Даны целые числа a1, a2, ..., a10.. В этой последовательности все члены последовательности, больше 2, заменить 0. Получить сумму членов последовательности, принадлежащих [2;9]. В целочисленном массиве A(N) определить число, встречающееся максимальное количество раз. Если их несколько, то вывести одно из них. Спасибо.

Решение задачи: «Массив: Получить сумму членов последовательности, принадлежащих [2;9]»

textual
Листинг программы
  1. LOCALS
  2.  
  3. .model small
  4.  
  5. .stack 100h
  6.  
  7. .data
  8.         A       db      3, 2, 9, 0, 8, 4, 7, 1, 9, 5
  9.         Sum     dw      ?
  10. .code
  11.  
  12. main    proc
  13.         mov     ax,     @data
  14.         mov     ds,     ax
  15.  
  16.         ;все члены последовательности, больше 2, заменить 0
  17.         lea     si,     A
  18.         mov     cx,     10
  19. @@1:
  20.         cmp     byte ptr [si],  2
  21.         jbe     @@Next1
  22.         mov     byte ptr [si],  0
  23. @@Next1:
  24.         add     si,     1
  25.         loop    @@1
  26.  
  27.         ;Получить сумму членов последовательности, принадлежащих [2;9].
  28.         lea     si,     A
  29.         mov     cx,     10
  30.         mov     bx,     0       ;сумма
  31. @@2:
  32.         mov     al,     [si]
  33.         cmp     al,     2
  34.         jb      @@Next2
  35.         cmp     al,     9
  36.         ja      @@Next2
  37.         add     bl,     al
  38.         adc     bh,     0
  39. @@Next2:
  40.         add     si,     1
  41.         loop    @@2
  42.         mov     Sum,    bx
  43.  
  44.         ;определить число, встречающееся максимальное количество раз.
  45.         ;Если их несколько, то вывести одно из них.
  46.         lea     si,     A
  47.         mov     cx,     10-1
  48.         mov     dl,     0       ;искомое число
  49.         mov     dh,     0       ;количество в массиве
  50. @@3:
  51.         mov     al,     [si]
  52.         add     si,     1
  53.         mov     bh,     1
  54.         mov     di,     si
  55.         add     di,     1
  56.         push    cx
  57.         @@ForJ:
  58.                 cmp     al,     [di]
  59.                 jne     @@NextJ
  60.                 inc     bh
  61.         @@NextJ:
  62.                 add     di,     1
  63.                 loop    @@ForJ
  64.         pop     cx
  65.         cmp     bh,     dh
  66.         jbe     @@Next3
  67.         mov     dh,     bh
  68.         mov     dl,     al
  69. @@Next3:
  70.         loop    @@3
  71.  
  72.         mov     al,     dl
  73.         aam
  74.         add     ax,     '00'
  75.         mov     dl,     ah
  76.         mov     dh,     al
  77.         mov     ah,     02
  78.         int     21h
  79.         mov     dl,     dh
  80.         int     21h
  81.  
  82.         mov     ax,     4C00h
  83.         int     21h
  84. main    endp
  85.  
  86. end     main

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

  1. Создаются переменные:
    • A - массив данных 3, 2, 9, 0, 8, 4, 7, 1, 9, 5
    • Sum - двойное слово для хранения суммы
  2. Инициализация сегментов:
    • Устанавливается размер стека
    • Устанавливается размер сегмента данных
  3. Начало процедуры:
    • Устанавливается указатель на начало массива A
    • Устанавливается количество элементов в массиве (10)
  4. Члены последовательности, больше 2, заменяются на 0:
    • Перебираются все элементы массива
    • Если элемент меньше или равен 2, то он заменяется на 0
  5. Получение суммы членов последовательности, принадлежащих [2;9]:
    • Считается сумма всех элементов массива, которые находятся в диапазоне от 2 до 9
  6. Определение числа, встречающегося максимальное количество раз:
    • Подсчитывается количество вхождений каждого элемента в массив
    • Находится число, которое встречается максимальное количество раз
  7. Вывод результата на экран:
    • Полученное число выводится на экран
  8. Завершение программы:
    • Программа завершается.

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


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

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

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

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

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

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