Определить, есть ли в записи числа цифра, равная среднему арифметическому остальных цифр - 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
Объяснение кода листинга программы
Код выполняет следующие действия:
- Перемещает значение переменной
number
в регистрax
. - Устанавливает
dx
равным 0. - Устанавливает
si
равным 0. - Перемещает 10 в регистр
bx
. - Устанавливает
cx
равным 0. - Начинает цикл, который будет выполняться до тех пор, пока значение
ax
не станет равным 0. - Делит
bx
наax
и добавляет результат кsi
. - Откладывает значение
dx
в стек. - Устанавливает
dx
равным 0. - Увеличивает
cx
на 1. - Проверяет, равен ли
ax
0. Если нет, то переходит к шагу 6. - Перемещает 0 в
dx
. - Перемещает
si
вax
. - Делит
cx
наax
. - Выполняет цикл, пока не будет выполнено условие выхода из цикла.
- Перемещает
bx
вdx
. - Сравнивает
ax
иbx
. Если они равны, то переходит к шагу 15. - Выполняет цикл, пока не будет выполнено условие выхода из цикла.
После выполнения кода значение переменной
si
будет содержать среднее арифметическое цифр числа, записанного в переменнойnumber
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д