256 dup(?)
stk ends
data segment
result db 0
message db 'Result: ',10,13,'$'
data ends
code segment
assume cs:code, ds:data,ss:stk
start:
mov ax, data
mov ds, ax
mov cx, 0 ; счетчик
mov bx, 0 ; сумма
jmp ExampleLoop
mov ah, 09h ; указываем функцию для вывода на экран
lea dx, message ; указываем адрес сообщения
int 21h ; вызываем прерывание для вывода строки
; выводим результат из цикла
mov result, bl ; сохраняем значение общей суммы в переменной result
mov ah, 02h ; указываем функцию для вывода символа
mov dl, result ; загружаем значение result в регистр dl
add dl, 48 ; преобразуем значение в символьное представление
int 21h ; вызываем прерывание для вывода символа
mov ah, 4ch ; указываем функцию для завершения программы
int 21h ; вызываем прерывание
ExampleLoop:
mov dx, cx ; сохраняем значение счетчика в регистре DX
mov ax, 0 ; обнуляем регистр AX для начала внутреннего цикла
mov si, 0 ; индекс суммы во внутреннем цикле
inner_loop:
add ax, dx ; добавляем текущее значение счетчика в сумму
sub dx, 2 ; уменьшаем значение счетчика на 2 для следующего цикла
inc si ; увеличиваем индекс суммы
cmp dx, -1 ; проверяем условие завершения внутреннего цикла
jge inner_loop ; если условие верно, то повторяем внутренний цикл
add bx, ax ; добавляем сумму внутреннего цикла к общей сумме
inc cx ; увеличиваем значение счетчика
cmp bx, 153 ; проверяем условие равенства общей суммы 153
jne ExampleLoop ; если условие не верно, повторяем внешний цик
code ends
end start
но результат так и не выводит, не могу понять почему
Стикер
а как сохранить?
Добавь форматирование кода
в память из вестными тебе средствами
ты это деалешь каждый раз перед/после вывода сообщения?
Так ты ведь прыгаешь в цикл
Формат добавь к коду, чтобы понятнее было при чтении
asm Code
Обсуждают сегодня