Определить, есть ли в записи числа цифра, равная среднему арифметическому остальных цифр - Assembler (225165)

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

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

Задано целое беззнаковое число Х<65536. Определить, есть ли в записи числа цифра, равная среднему арифметическому остальных цифр? Полученное значение вывести на экран.

Решение задачи: «Определить, есть ли в записи числа цифра, равная среднему арифметическому остальных цифр»

textual
Листинг программы
.code
    ...
    mov ax,number
    mov dx,0
        mov si,0
    mov bx,10 
    mov cx,0
a0: div bx 
    add si,dx
    push dx
    mov dx,0 
    inc cx 
    test ax,ax 
    jne a0
    mov dx,0
    mov ax,si
    div cx
a1: pop bx
    cmp ax,bx
    je a2
    loop a1
    ...
a2:
.data   
number  dw 62002

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

Код выполняет следующие действия:

  1. Перемещает значение переменной number в регистр ax.
  2. Устанавливает dx равным 0.
  3. Устанавливает si равным 0.
  4. Перемещает 10 в регистр bx.
  5. Устанавливает cx равным 0.
  6. Начинает цикл, который будет выполняться до тех пор, пока значение ax не станет равным 0.
  7. Делит bx на ax и добавляет результат к si.
  8. Откладывает значение dx в стек.
  9. Устанавливает dx равным 0.
  10. Увеличивает cx на 1.
  11. Проверяет, равен ли ax 0. Если нет, то переходит к шагу 6.
  12. Перемещает 0 в dx.
  13. Перемещает si в ax.
  14. Делит cx на ax.
  15. Выполняет цикл, пока не будет выполнено условие выхода из цикла.
  16. Перемещает bx в dx.
  17. Сравнивает ax и bx. Если они равны, то переходит к шагу 15.
  18. Выполняет цикл, пока не будет выполнено условие выхода из цикла. После выполнения кода значение переменной si будет содержать среднее арифметическое цифр числа, записанного в переменной number.

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


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

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

9   голосов , оценка 3.889 из 5
Похожие ответы