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

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

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

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

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

textual
Листинг программы
LOCALS
 
.model small
 
.stack 100h
 
.data
        A       db      3, 2, 9, 0, 8, 45, 5, 15, 9, 5
        N       dw      $-A
.code
 
main    proc
        mov     ax,     @data
        mov     ds,     ax
 
        ;Найти количество пар "соседних" чисел,
        ;оканчивающихся на цифру 5.
        lea     si,     A
        mov     cx,     N
        dec     cx
        mov     di,     0       ;количество пар
@@For:
        mov     al,     [si]
        cbw
        add     si,     1
        mov     bl,     10
        idiv    bl
        cmp     ah,     5
        jne     @@Next
 
        mov     al,     [si+1]
        cbw
        add     si,     1
        mov     bl,     10
        idiv    bl
        cmp     ah,     5
        jne     @@Next
 
        inc     di
@@Next:
        loop    @@For
 
        mov     ax,     di
 
        aam
        add     ax,     '00'
        mov     dl,     ah
        mov     dh,     al
        mov     ah,     02
        int     21h
        mov     dl,     dh
        int     21h
 
        mov     ax,     4C00h
        int     21h
main    endp
 
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
Похожие ответы