Составить программу вычисления n-го члена последовательности Фибоначчи - Assembler (225089)
Формулировка задачи:
Помогите, пож, решить 3 задачи в ассемблере.... ЗАВТРА ЭКЗ......... 0_о
НЕ ДАЙТЕ ПОГИБНУТЬ!!!!!!!!!!!!!!!!!!!
Заранее СПАСИБО!!!!
1) составить программу для нахождения y=2*min(BX,CX), предварительно переписав в регистры BX и CX числа. результат переписать по метке Y.
2) Составить программу вычисления n-го члена последовательности Фибоначчи. Результат в AX.
3) В оперативной памяти начиная с некоторого адреса храниться массив из 10 чисел. Составить программу которая увеличивает каждый элемент массива на 5.
Решение задачи: «Составить программу вычисления n-го члена последовательности Фибоначчи»
textual
Листинг программы
.code start: mov ax,@data mov ds,ax mov ah,00 int 16h cmp ax,2 jle exit1 mov cx,ax sub cx,2 mov ax,1 mov bx,1 big: add ax,bx mov dx,ax sub dx,bx xchg dx,bx loop big jmp exit2 exit1: mov ax,1 jmp exit2 exit2: mov ah,4Ch int 21h end start
Объяснение кода листинга программы
Выполняемый файл на языке ассемблера, который вы предоставили, вычисляет n-й член последовательности Фибоначчи. Вот список действий, которые выполняет программа:
- Перемещает сегмент данных в регистр AX.
- Перемещает сегмент данных в регистр DS.
- Устанавливает регистр AH в 00.
- Выполняет запрос на ввод/вывод (INT 16H), который ожидает ввода целого числа из консоли.
- Проверяет, является ли введенное число меньше или равным 2. Если это так, то выполняется переход к метке
exit1
. - Устанавливает регистр CX равным значению регистра AX.
- Вычитает 2 из регистра CX.
- Устанавливает регистры AX и BX равными 1.
- Начинается цикл
big
, который выполняется до тех пор, пока значение регистра CX больше или равно 1. - Внутри цикла происходит сложение регистров AX и BX, результат сохраняется в регистре AX.
- Значение регистра AX также сохраняется в регистре DX.
- Регистр DX вычитается из регистра BX.
- Происходит обмен значениями между регистрами DX и BX.
- Цикл продолжается до тех пор, пока значение регистра CX больше или равно 1.
- Если значение регистра CX меньше 1, то выполняется переход к метке
exit1
. - По завершении цикла выполняется переход к метке
exit2
. - Завершающая программа выводит сообщение об успешном выполнении. Обратите внимание, что ввод n-го числа в шестнадцатеричной системе счисления, где n - это значение регистра AX после выполнения INT 16H.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д