НОВЫЕ ОТВЕТЫ
Кремлебот №2
Какая музыка радует ваши уши
Кремлебот №2 - 17 Апреля
Кремлебот №2
досчитай до 100 001,5
Кремлебот №2 - 13 Апреля
Кремлебот №2
Гудбай Америка...
Кремлебот №2 - 13 Апреля
Алексей Соловьев
Волейбол инфо
Алексей Соловьев - 11 Апреля
Розенкранц и Гильдерштерн
Изготовление корпусной мебели на заказ.
Розенкранц и Гильдерштерн - 9 Апреля
Pa-ha
МММ-2011 не платит!
Pa-ha - 6 Апреля
НОВОЕ В БЛОГАХ
Kodo
Соседка
Kodo - 29 Марта
Вопрос
ohmydi - 4 Марта
Скульптор
ohmydi - 4 Марта
Всем привет
jinji - 4 Марта
rmm
Ночь
rmm - 19 Февраля
rmm
Октябрь. Море поутру
rmm - 19 Февраля
Kodo
Виртуальность
Kodo - 13 Февраля
Kodo
Снова пишу
Kodo - 30 Января
partalstalina
Производим нихромовые спирали Онлайн заказ с доставкой по РФ
partalstalina - 27 Января
Корейская косметика
Olegovna - 7 Января
Sana
Администратор
Рейтинг:
2732
Сообщений:
26,832
Пользователь:
1
На сайте с:
Сен 2004
Из:
Саяногорск
15 Декабря 2004, 13:20 | Оценка: нет оценки
КОД

mpy clrf byte0   //очищаем регистры отведенные под резултьтат, первый
clrf byte1   //очищаем регистры отведенные под резултьтат, второй
clrf byte2   //очищаем регистры отведенные под резултьтат, третий
clrf byte3   //очищаем регистры отведенные под резултьтат, четвертый (результат 32 разряда)
movlw 16     //загружаем в регистр w константу 16 (столько будет проходов цикла, для умножения 2х 16 разрядных чисел)
movwf count,W  //выгружаем регистр w в регситр count (в нем и будет вестись счетчик проходов цикла)
bcf STATUS,C  //сбрасываем флаг переноса
loop rrf mulplr_H,F  //начинаем цикл,двигаем вправо старшие разряды множителя через флаг перноса
rrf mulplr_L,F  //двигаем вправо младшие разряды множителя
   //резултат - имеем сдвинутое на разряд вправо 16-ричное число в расположенное в 2 х регистрах
btfsc STSTUS,C  //проверяем флаг переноса
call summ  //если он равен 1 то вызываем процедуру суммирования
rrf byte3,F  //сдвигаем вправо разряды резултата через флаг переноса, аналогично множителю - сначала старшие (четвертый байт)
rrf byte2,F  //сдвигаем третий байт
rrf byte1,F  //сдвигаем второй байт
rrf byte0,F  //ну и первый. результат - двигаем вправо на разряд всё 32 разрядное число расположенное в 4-х регистрах
decfsz count,F  //декремент (вычитаем единицу) из регистра count и проверяем не равен ли регистр нулю
goto loop  //если count не равен нулю (пока не равен) повторяем цикл c метки loop
retlw 0    //выходим из процедуры...

summ   bcf STATUS,DC  //процедура суммирования, cбрасываем флаг переноса разряда
movf mulcnd_L,W          //загружаем младшие разряды множимого в W
addwf byte2, F  //cуммируем младший байт множителя, с первым (младшим) байтом результата (byte0)
//--------------------------------------------------------------------------------------------------
//Из документации не понятно, учитывает ли команда addwf флаг переноса разряда автоматически,
//тоесть учитывается ли в суммировании перенесенный разряд, из предудущей операции,
//если нет, то тут надо вписать следующий кусок:

btfsc STATUS,DC
incf byte3,F

//--------------------------------------------------------------------------------------------------
movf mulcnd_H,W //загружаем старшие разряды множимого в W
addwf byte3,F  //cуммируем старший байт множителя, с четвертым байтом результата (byte3)
retlw 0   //выход из процедуры суммирования...

Правда я абcолютно не уверен, что она правильная, и что она будет работать... но попытаться можно...

Комментарии:
mulplr_L - младший байт множителя
mulplr_H - старший байт множителя

mulcnd_L - младший байт множителя
mulcnd_H - старший байт множителя

byte0-byte3 - четыре байта результата

summ - процедура суммирования 16 разрядных чисел...

Вот в общем то и всё... - сдеално по аналогии с исходным кодом, возможно где то ошибся... biggrin.gif
Сообщение отредактировал Sana - 15 Декабря 2004, 13:54
Саяногорск инфо - Саяногорский городской сайт
ICQ: 215340073 | e-mail: admin@sayanogorsk.info | Skype / Telegram: mrSana19
natinn
Симпатичная
Рейтинг:
962
Сообщений:
2,450
Пользователь:
7
На сайте с:
Сен 2004
Из:
Саяногорск-Шарыпово
15 Декабря 2004, 13:24 | Оценка: нет оценки
Sana , спасибки те большое!!!!
С большой грудью легче быть счастливой!!!

Мне плевать, что Вы обо мне думаете. Я о Вас вообще не думаю. (с)Chanel
Kodo
Исполнительный директор
Рейтинг:
0
Сообщений:
1,025
Пользователь:
92
На сайте с:
Дек 2004
Из:
Санкт-Петербург
15 Декабря 2004, 16:54 | Оценка: нет оценки
natinn
С тебя ящик пива smile.gif. Это я в защиту Саниных интересов говорю... biggrin.gif
Не ошибается только тот, кто ничего не делает (да и тот ошибается smile.gif )
natinn
Симпатичная
Рейтинг:
962
Сообщений:
2,450
Пользователь:
7
На сайте с:
Сен 2004
Из:
Саяногорск-Шарыпово
15 Декабря 2004, 19:46 | Оценка: нет оценки
Kodo , ну я уж сама разберусь, что мне Sana поставить!!!
С большой грудью легче быть счастливой!!!

Мне плевать, что Вы обо мне думаете. Я о Вас вообще не думаю. (с)Chanel
Kodo
Исполнительный директор
Рейтинг:
0
Сообщений:
1,025
Пользователь:
92
На сайте с:
Дек 2004
Из:
Санкт-Петербург
16 Декабря 2004, 09:05 | Оценка: нет оценки
natinn
Ладно, не обижайся... Это я так...
Не ошибается только тот, кто ничего не делает (да и тот ошибается smile.gif )
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
Похожие темы
Автор темы