Вычислить количество элементов массива, делящихся нацело на заданное число - Assembler
Формулировка задачи:
всем привет, чайник в ассемблере, буду очень благодарен, помогите плиз с задачей:
вычислить количество, делящихся нацело заданным числом, элементов массива. Длина массива, сам массив и делитель(заданное число) вводятся. Массив одномерный. спасибо
Решение задачи: «Вычислить количество элементов массива, делящихся нацело на заданное число»
textual
Листинг программы
xor cx,cx mov bx,10 input: xor ax,ax int 16h cmp al,13 jz stop_i cmp al,'0' jb input cmp al,'9' ja input push ax and ax,0fh xchg ax,cx xor dx,dx mul bx add cx,ax pop ax int 29h jmp short input
Объяснение кода листинга программы
- xor cx,cx - Задание начального значения счётчика
- mov bx,10 - Задание границы цикла
- input: - Начало цикла
- xor ax,ax - Начальное значение регистра ax равно 0
- int 16h - Ввод символа с клавиатуры в регистр al
- cmp al,13 - Проверка на нажатие клавиши Enter
- jz stop_i - Если нажата клавиша Enter, то прекращение цикла
- cmp al,'0' - Проверка на ввод цифры от 0 до 9
- jb input - Если введена цифра меньше 0, то повторный ввод
- cmp al,'9' - Проверка на ввод цифры от 0 до 9
- ja input - Если введена цифра больше 9, то повторный ввод
- push ax - Сохранение значения регистра ax в стеке
- and ax,0fh - Получение номера строки массива из регистра ax
- xchg ax,cx - Регистр cx содержит количество элементов массива
- xor dx,dx - Начальное значение регистра dx равно 0
- mul bx - Умножение количества элементов массива на значение переменной bx
- add cx,ax - Увеличение счётчика на количество элементов массива, получившееся при умножении
- pop ax - Восстановление значения регистра ax из стека
- int 29h - Вывод значения регистра ax на экран
- jmp short input - Возврат к началу цикла
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д