Сформировать и вывести целочисленный массив размера N, содержащий N первых элементов последовательности чисел Фибоначчи - Assembler
Формулировка задачи:
Дано целое число N(>2).Сформировать и вывести целочисленный массив размера N,содержащий N первых элементов последовательности чисел Фибоначи Fк:F1=1,F2=1,Fk=Fk-2+Fk-1,k=3,4,,,,,
помогите пожалуйста
Решение задачи: «Сформировать и вывести целочисленный массив размера N, содержащий N первых элементов последовательности чисел Фибоначчи»
textual
Листинг программы
format PE Console include 'win32a.inc' N equ 10 mov eax,1 mov ebx,1 mov ecx,N sub ecx,2 mov edi,fib add edi,8 mMain: add ebx,eax mov [edi],ebx xchg eax,ebx add edi,4 loop mMain invoke ExitProcess,0 fib dd N dup(1) include 'API\kernel32.inc' data import library kernel32,'KERNEL32.DLL' end data
Объяснение кода листинга программы
Вывод массива N первых чисел последовательности Фибоначчи:
- Переменная N содержит размер массива.
- В начале программы инициализированы два первых элемента последовательности в переменных eax и ebx.
- Затем счётчик цикла (ecx) устанавливается равным N минус 2, так как индексация массива начинается с 1.
- Далее, в переменную edi записывается адрес первого элемента массива fib.
- К этому адресу добавляется 8, чтобы указать на первый элемент, который будет выводиться.
- В цикле mMain происходит формирование и вывод чисел Фибоначчи в массив fib.
- Сначала к ebx прибавляется значение eax (первый элемент), и результат записывается в массив.
- Затем значения eax и ebx меняются местами, чтобы в следующем цикле использовать eax как временную переменную.
- К edi прибавляется 4, чтобы перейти к следующему элементу массива.
- Цикл продолжается до тех пор, пока счётчик не станет равным 0.
- В конце программы вызывается функция ExitProcess с аргументом 0.
- В разделе данных определён массив fib размером N, все элементы которого равны 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д