Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с ассемблером! / 3 сообщений из 3, страница 1 из 1
01.05.2013, 13:37
    #38246054
vacarme
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с ассемблером!
Нужно рассчитать числа Фибоначчи (каждое новое число равно сумме двух предыдущих, в десятичной записи: 1, 1, 2, 3, 5, 8, 13, 21, 34 и т.д.), не превышающее заданного числа N[2^8, 2^16 -1]. Результат разместить во внешнем ОЗУ, отводя 2 ячейки на каждое число.
Я понимаю, как написать эту программу, высчитывающую числа фибоначчи, на СИ, например, но с ассемблером возникли непонятки...
Вот, что набросала:

MOV R1,#01h
MOV R2,#01h
MOV R3,#0Dh
MOV P1,R1
MOV P1,R2
ADD R1,R2 (две строчки, которые суммируют предыдущие числа)
MOV P1,R1
DJNZ R3,<…> (счетчик, грубо говоря, который возвращает к заданному адресу для продолжения "цикла", пока R3 не станет равен "0")

Вероятно, тут всё совсем не верно... Помогите, пожалуйста!
...
Рейтинг: 0 / 0
02.05.2013, 00:24
    #38246333
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с ассемблером!
vacarmeНужно рассчитать числа Фибоначчи (каждое новое число равно сумме двух предыдущих, в десятичной записи: 1, 1, 2, 3, 5, 8, 13, 21, 34 и т.д.), не превышающее заданного числа N[2^8, 2^16 -1]. Результат разместить во внешнем ОЗУ, отводя 2 ячейки на каждое число.
Я понимаю, как написать эту программу, высчитывающую числа фибоначчи, на СИ, например, но с ассемблером возникли непонятки...
Вот, что набросала:

MOV R1,#01h
MOV R2,#01h
MOV R3,#0Dh
MOV P1,R1
MOV P1,R2
ADD R1,R2 (две строчки, которые суммируют предыдущие числа)
MOV P1,R1
DJNZ R3,<…> (счетчик, грубо говоря, который возвращает к заданному адресу для продолжения "цикла", пока R3 не станет равен "0")

Вероятно, тут всё совсем не верно... Помогите, пожалуйста!

негде проверить. Но думаю как-то так будет лучше:

mov ax, 1d
mov dx, 1d
xor cx, cx
@loop:
;тут команда вывода в ячейку регистра ax
add ax, dx
adc cx, 00
xchg ax, dx
test cx, FFh
jz @loop

не помню на каком асме... вроде на tasm. На любой другой можно легко переделать. только проверить надо.
Это вариант для 2^16-1. для 2^8-1 - то же самое, только с регистрами по 8 бит
...
Рейтинг: 0 / 0
02.05.2013, 13:46
    #38246583
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с ассемблером!
это 8051
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с ассемблером! / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]