Найти количество пар "соседних" чисел, оканчивающихся на цифру 5 - Assembler

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

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

Обработка данных в цикле (Организация вычислений во время ввода данных) помогите с программой (говоря простым языком, кто не занят ,или кого не затруднит , напишите ее -_-) Даны натуральное число n и целые числа a1, a2, ..., . an. Найти количество пар "соседних" чисел, оканчивающихся на цифру 5. Заранее огромное спасибо тем кто поможет, очень благодарен.

Решение задачи: «Найти количество пар "соседних" чисел, оканчивающихся на цифру 5»

textual
Листинг программы
  1. LOCALS
  2.  
  3. .model small
  4.  
  5. .stack 100h
  6.  
  7. .data
  8.         A       db      3, 2, 9, 0, 8, 45, 5, 15, 9, 5
  9.         N       dw      $-A
  10. .code
  11.  
  12. main    proc
  13.         mov     ax,     @data
  14.         mov     ds,     ax
  15.  
  16.         ;Найти количество пар "соседних" чисел,
  17.         ;оканчивающихся на цифру 5.
  18.         lea     si,     A
  19.         mov     cx,     N
  20.         dec     cx
  21.         mov     di,     0       ;количество пар
  22. @@For:
  23.         mov     al,     [si]
  24.         cbw
  25.         add     si,     1
  26.         mov     bl,     10
  27.         idiv    bl
  28.         cmp     ah,     5
  29.         jne     @@Next
  30.  
  31.         mov     al,     [si+1]
  32.         cbw
  33.         add     si,     1
  34.         mov     bl,     10
  35.         idiv    bl
  36.         cmp     ah,     5
  37.         jne     @@Next
  38.  
  39.         inc     di
  40. @@Next:
  41.         loop    @@For
  42.  
  43.         mov     ax,     di
  44.  
  45.         aam
  46.         add     ax,     '00'
  47.         mov     dl,     ah
  48.         mov     dh,     al
  49.         mov     ah,     02
  50.         int     21h
  51.         mov     dl,     dh
  52.         int     21h
  53.  
  54.         mov     ax,     4C00h
  55.         int     21h
  56. main    endp
  57.  
  58. end     main

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

  1. A - массив чисел, содержащий 3, 2, 9, 0, 8, 45, 5, 15, 9, 5
  2. N - длина массива A, вычисляемая как разница между текущим адресом и началом массива
  3. ax - регистр для управления сегментами данных
  4. ds - регистр сегмента данных
  5. si - счетчик для обхода массива A
  6. cx - счетчик для итераций по массиву
  7. di - переменная для хранения количества пар чисел, оканчивающихся на цифру 5
  8. al - регистр для хранения очередного элемента массива
  9. bl - переменная для хранения числа 10 (для деления на 10)
  10. ah - регистр для хранения остатка от деления
  11. LOOP - инструкция для реализации цикла
  12. aam - инструкция для разделения числа на две части
  13. ax - регистр для хранения результата операций
  14. dl - регистр для вывода результата (одна часть числа)
  15. dh - регистр для вывода результата (вторая часть числа) Этот код реализует поиск количества пар соседних чисел в массиве, оканчивающихся на цифру 5. После этого количество пар выводится на экран.

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


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

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

13   голосов , оценка 3.923 из 5

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

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

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