Произведение чисел - 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

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

  1. bx - это регистр, который используется в качестве индекса для выполнения операций со словами (байтами) в памяти.
  2. 1 - это число, которое добавляется к значению регистра bx.
  3. a_ne_ravno_0 - это метка, которая указывает на начало цикла.
  4. b - это второе число, которое сравнивается с bx.
  5. cikl - это метка, которая указывает на конец цикла.

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


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

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

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