Произведение чисел - Assembler
Формулировка задачи:
Приветствую коллеги. Подскажите пожалуйста, почему не выходит ответ? Где я оступился?
Определите произведение всех чисел кратныx 5 на отрезке от A до B
.model small ; директива организации памяти include io.asm ; подключаем модуль IO.ASM .data ; начало сегмента данных info db "Вычисление произведения всех чисел кратныx 5 на отрезке от A до B. $" smsa db "Введите A: $" smsb db "Введите B: $" smsx db "Произведение всех чисел кратныx 5 = $" a dw ? b dw ? proizv dw 1 .code ; начало сегмента кода start: ; метка start - начало программы mov ax, @data ; в ax записываем начальный адрес сегмента данных mov ds,ax ; AX копируем в DS mov cx,proizv lea dx,info outstr ;вывод info newline ;переход на новую строку lea dx,smsa outstr ;вывод smsa inint a lea dx,smsb outstr ;вывод smsb inint b mov bx,a cikl: ;метка на начало цикла mov ax,bx mov bl,5 idiv bl ;делим a на 5 cmp ah,0 ;сравниваем остаток от деления с 0 jne a_ne_ravno_0 ;если а не равно 0, то перескакиваем на метку ; a_ne_ravno_0, иначе выполняем следующую команду imul cx mov cx,ax add bx,1 a_ne_ravno_0: cmp bx,b ;сравниваем bx c числом b jne cikl ;если ax не равно b, то перескакиваем на метку cikl ;иначе выполняем следующую команду lea dx,smsx outstr ;вывод smsb mov proizv,cx ;значение CX записываем в proizv outword proizv ;вывод строки с максимальным числом finish ; макрокоманда завершения программы. end start ; конец программы с точкой входа start
Решение задачи: «Произведение чисел»
textual
Листинг программы
add bx,1 a_ne_ravno_0: cmp bx,b jne cikl
Объяснение кода листинга программы
bx
- это регистр, который используется в качестве индекса для выполнения операций со словами (байтами) в памяти.1
- это число, которое добавляется к значению регистраbx
.a_ne_ravno_0
- это метка, которая указывает на начало цикла.b
- это второе число, которое сравнивается сbx
.cikl
- это метка, которая указывает на конец цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д