Составить программу вычисления 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-й член последовательности Фибоначчи. Вот список действий, которые выполняет программа:

  1. Перемещает сегмент данных в регистр AX.
  2. Перемещает сегмент данных в регистр DS.
  3. Устанавливает регистр AH в 00.
  4. Выполняет запрос на ввод/вывод (INT 16H), который ожидает ввода целого числа из консоли.
  5. Проверяет, является ли введенное число меньше или равным 2. Если это так, то выполняется переход к метке exit1.
  6. Устанавливает регистр CX равным значению регистра AX.
  7. Вычитает 2 из регистра CX.
  8. Устанавливает регистры AX и BX равными 1.
  9. Начинается цикл big, который выполняется до тех пор, пока значение регистра CX больше или равно 1.
  10. Внутри цикла происходит сложение регистров AX и BX, результат сохраняется в регистре AX.
  11. Значение регистра AX также сохраняется в регистре DX.
  12. Регистр DX вычитается из регистра BX.
  13. Происходит обмен значениями между регистрами DX и BX.
  14. Цикл продолжается до тех пор, пока значение регистра CX больше или равно 1.
  15. Если значение регистра CX меньше 1, то выполняется переход к метке exit1.
  16. По завершении цикла выполняется переход к метке exit2.
  17. Завершающая программа выводит сообщение об успешном выполнении. Обратите внимание, что ввод n-го числа в шестнадцатеричной системе счисления, где n - это значение регистра AX после выполнения INT 16H.

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


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

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

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