Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Арифметика для 8051
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Mixx
Уважаемые, пожалуйста подскажите, где посмотреть образцы или рабочие арифметические п/программы на ассемблере для процессора 51 семейства. Интересует 2-х, и более байтное умножение, деление, преобразования систем счисления. Может есть оригинальные решения с максимальной скоростью в ущерб объёму памяти?
beer_warrior
Ну навскидку, посмотреть аппноты Атмела, там достаточно богатые россыпи.
avv
Еще цикл статей Фрунзе "Микроконтроллеры? Это же просто" в журнале "Смехотехника". Там как раз рассматривают арифметику для 51 МК. (В 2005г. точно для 51, что раньше - не знаю)
rat
Не нужно продлевать агонию ассемблера и 51.
Mixx
rat, уважаемый. Извините, но на вкус и цвет, как говориться... smile.gif

avv,beer_warrior , благодарю за отзывы и советы! Будем искать и просматривать источники. Параллельно пытаюсь сочинить требуемое под свои запросы. blink.gif
ROC
Гм...
А почитать исходники от библиотек?
Например, у Tasking есть обильно комментированные исходники примерно следующего вида:
Код
;************************************************************************
;            *
;  MULL          *
;            *
;    this routine provides an 32 bit multiplication (a*B)  *
;    at entry:    stack  one operand (a)      *
;      r4,r5,r6,r7    the other operand (B)  *
;            *
;    at exit:    r4,r5,r6,r7    the 32 bit result (a*B)  *
;      the operand on stack is removed      *
;            *
;    destroys:    A/B/R4/R5/R6/R7/C + GETLUP      *
;    preserves:    R0/R1/R2/R3        *
;            *
;    total stacksize needed:    14 bytes (__GETLUP needs 6 bytes)    *
;            *
;************************************************************************

Ну и далее собственно код.
Igor26
Цитата(rat @ Oct 18 2005, 05:59)
Не нужно продлевать агонию ассемблера и 51.
*


Это как посмотреть! Atmel, Cygnal, Dallas, Philips, Infineon и т.д. агонией свою деятельность не считают! Посмотрите их линейку х51/52 процессоров. А вот на счет ассемблера - согласен. Keil генерит весьма компактный код.
Mixx
Ещё раз благодарю всех откликнувшихся.
Проблема почти снята. Очень хорошо все азы описаны у Фрунзе. Там же и практические п/пр на ассемблере. Многие моменты уяснил и узнал. "Слепил" требуемое из смеси табличных выборок и классических алгоритмов.
Сам я пока с Кейлом не очень близко знаком. А вот любопытно, какую он мог бы сгенерить, к примеру, п/пр преобразования двоичного числа 13 разрядного (от 0 до 12 разряда включительно) в четырёхразрядное двоично-десятичное? Учитывая, что требуется максимальное быстродействие. Вот у меня получилось 62 цикла длительность, без учёта вызова и возврата, и не сохраняя используемых регистров. Причём, я далеко не профессионал программирования. Если кто с Кейлом "на ты", может приведёте его результаты, а если можно, то и ассемблерный код.
MosAic
Цитата(Mixx @ Oct 22 2005, 22:34)
...
Проблема почти снята.
...
Сам я пока с Кейлом не очень близко знаком. А вот любопытно, какую он мог бы сгенерить, к примеру, п/пр преобразования двоичного числа 13 разрядного (от 0 до 12 разряда включительно) в четырёхразрядное двоично-десятичное? Учитывая, что требуется максимальное быстродействие. Вот у меня получилось 62 цикла длительность, без учёта вызова и возврата, и не сохраняя используемых регистров. Причём, я далеко не профессионал программирования. Если кто с Кейлом "на ты", может приведёте его результаты, а если можно, то и ассемблерный код.
*

Хоть проблема и снята, но все же посмотрите Библиотеки на 8052.com Первая же библиотека называется "16 bit to 5 decade digits conversion". Кроме того, сайт очень богат различной информацией как для начинающих, так и опытных разработчиков на базе 51.

Что касается Keil, то лучше пощупать самому. Как всегда, очень многое зависит от разработчика. Если интересно - поможем (C V7.10, Asm V7.09).
Mixx
Цитата(MosAic @ Oct 29 2005, 08:13)
Хоть проблема и снята, но все же посмотрите Библиотеки на 8052.com Первая же библиотека называется "16 bit to 5 decade digits conversion".

MosAic, огромная Вам благодарность! Действительно очень много полезного на приведённом сайте. Почерпнул разных примеров. Ещё раз спасибо! cheers.gif smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.