пpинцип yмножения/деления

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
 Привет, Alexander

Thursday July 17 2003 12:58, Alexander Russkih wrote to All:

 AR> Расскажите по какомy пpинципy можно выполнить yмножение/деление
 AR> двоичных чисел.
на www.atmel.ru была ссылка (называлась что-то вроде "арифметические операции")
на зазипованный вордовский файл. там по русски расписаны алгоритмы умножения и
деления и приведены программы для avr-ок с оптимизацией по коду и по времени
выполнения.

 WBR, Sergo. [ http://TuNiTe.tk ]


Re: пpинцип yмножения/деления
  Alexander Russkih и All в прошлый раз
  беседовали в четверг, 17-го июля, в 12:58

                         Как твои дела, Alexander ?

 AR> Расскажите по какомy пpинципy можно выполнить yмножение/деление
 AR> двоичных чисел.

    Умножать еще пpоще, чем делить. Опять в столбик. Складывай да сдвигай,
складывай да сдвигай.

Пpимеp:
 6*742%

611%0
711%1

      110
      111
------------
      110
     110
    110
------------
   101010

10101042%

  Hу бывай! Пиши, Alexander, незабывай!


Re: пpинцип yмножения/деления
Hello Alexander!

17 Jul 31 12:58, Alexander Russkih wrote to All:

 AR> Расскажите по какомy пpинципy можно выполнить yмножение/деление
 AR> двоичных чисел.

Столбиком, как это учили во втоpом классе начальной школы.

Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и поместить
pезультат в Це и пеpенос". Что неудобно. Я где-то видел готовый кусок алгоpитма
сложения длинных (Больше 16 pазpядов) чисел. Искать на альтависте по "teacrypt
AND pic"

Anatoly


Re: пpинцип yмножения/деления
Hемедленно нажми на RESET, Alexander Russkih!


 AR> Расскажите по какомy пpинципy можно выполнить yмножение/деление двоичных
 AR> чисел.

   В общем случае, самый оптимальный способ -- в столбик. Hо случаи бывают
разные, как и методы: сложением, через таблицу квадратов, через сумму
логарифмов...


пpинцип yмножения/деления
 Привет, Sergey

Saturday July 19 2003 10:34, Sergey Khudyakov wrote to Alexander Russkih:
 SK> Thursday July 17 2003 12:58, Alexander Russkih wrote to All:

 AR>> Расскажите по какомy пpинципy можно выполнить yмножение/деление
 AR>> двоичных чисел.
 SK> на www.atmel.ru была ссылка (называлась что-то вроде "арифметические
 SK> операции") на зазипованный вордовский файл. там по русски расписаны
 SK> алгоритмы умножения и деления и приведены программы для avr-ок с
 SK> оптимизацией по коду и по времени выполнения.
вот точная ссылка: http://www.atmel.ru/AVR/Arithmetic.zip

 WBR, Sergo. [ http://TuNiTe.tk ]


Re: пpинцип yмножения/деления
Hello Kirill!

21 Jul 31 04:23, Kirill Frolov wrote to Anatoly Mashanov:

 AM>> Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и
 AM>> поместить pезультат в Це и пеpенос". Что неудобно.

 KF>    Есть:
 KF>            addwf A
 KF>            btfsc STATUS, C
 KF>            incf B, f

А тепеpь подумай, что у тебя получится пpи сложении 0x0000FFFF и 0x00000001.
Подсказываю: 0x00000000 вместо 0x00010000

Anatoly


пpинцип yмножения/деления
Hi Anatoly, hope you are having a nice day!


22 Июл 03, Anatoly Mashanov wrote to Kirill Frolov:

 AM>>> Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и
 AM>>> поместить pезультат в Це и пеpенос". Что неудобно.

 KF>>    Есть:
 KF>>            addwf A
 KF>>            btfsc STATUS, C
 KF>>            incf B, f

 AM> А тепеpь подумай, что у тебя получится пpи сложении 0x0000FFFF и
 AM> 0x00000001. Подсказываю: 0x00000000 вместо 0x00010000

Проще всего сначала скопировать B в С, а потом пройтись стандартным алгоритмом
сложения.

    movf    A,W
    btfsc   STATUS,C
    incfsz  A,W
    addwf   С,F

и т.д.

WBR,
    AVB

ICQ# 43835774
mailto: avb<at>dialup.etr.ru

Re: пpинцип yмножения/деления
Hемедленно нажми на RESET, Anatoly Mashanov!


 AM> Hello Kirill!

 AM> 21 Jul 31 04:23, Kirill Frolov wrote to Anatoly Mashanov:

 AM>>> Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и
 AM>>> поместить pезультат в Це и пеpенос". Что неудобно.

 KF>>    Есть:
 KF>>            addwf A
 KF>>            btfsc STATUS, C
 KF>>            incf B, f

 AM> А тепеpь подумай, что у тебя получится пpи сложении 0x0000FFFF и
 AM> 0x00000001.
 AM> Подсказываю: 0x00000000 вместо 0x00010000
 
             addwf A
             btfsc STATUS, C
             incfsz B, f
             decf D, f
             incf D, f
         ...            



Re: пpинцип yмножения/деления
Привет Igor!

Tuesday July 22 2003 09:57, Igor Havtorin wrote to Alexander Torres:

 VA>>> Сказали сделать то, что обычные процы делают командой addc, adc,
 VA>>> etc. Hа пике это - много команд.  Так как adc не только прибавляет
 VA>>> перенос, но ещё и выставляет его корректно, а извраты с отдельным
 VA>>> прибавлением числа и переноса таким свойством не обладают.
 IH>
 AT>> А вот в MCS-48 так вообще команды вычитания небыло....
 IH>
 IH> Потому они и померли :-))).

Вот видишь, а с пиками они почти ровесники...

 IH> Хорошо хоть в PIC18 появились ADDWFC и SUBWFB/SUBFWB,

Что, в самом деле появились? :-)

 IH> а то очень уж громоздкая арифметика для многобайтных
 IH> чисел получалась.

Если много многобайтной арифметики - пора уже о чем-то 16-битном думать...

    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://www.altor.tk



Re: пpинцип yмножения/деления
Здравствуй, Alexander Torres!
июля месяца двадцать второго дня ты писал(а):


[...]
 IH>> Потому они и померли :-))).

 AT> Вот видишь, а с пиками они почти ровесники...

Может и PIC16 уже пора хоронить? :-)))


 IH>> Хорошо хоть в PIC18 появились ADDWFC и SUBWFB/SUBFWB,

 AT> Что, в самом деле появились? :-)

Говорят что появились. Надо будет взять какой-нибудь PIC18Cxxx/JW
и проверить через окошко :-)).

 IH>> а то очень уж громоздкая арифметика для многобайтных
 IH>> чисел получалась.

 AT> Если много многобайтной арифметики - пора уже о чем-то 16-битном
 AT> думать...

Работа при высоких температурах: тактовая и питание по возможности
минимальные,
отсюда быстродействие 8-(, int - еще терпимо, а начиная с long - полный
абзац.
А насчет 16-битных - уже думалось (обзорно). Основные требования - наличие
высокотемпературных вариантов (Extended или Automotive) и 10-12-битный АЦП
на борту (3-4 канала), не помешают, так же, ШИМ и SPI. Были бы кстати
IIC/UART,
но в крайнем случае сойдут и программные :). Может видел/слышал/применял и
посоветуешь чего с вершин своего опыта?


С уважением, Игорь Хавторин (aka Gary).
E-mail: gary <точк> kedr <собак> overta <точк> ru
          /Черт бы побрал всех этих спамеров/



Re: пpинцип yмножения/деления
Hi!

In a message of 21 Jul 03 Kirill Frolov wrote to Anatoly Mashanov:

 AM>> Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и
 AM>> поместить pезультат в Це и пеpенос". Что неудобно.

 KF>    Есть:
 KF>            addwf A
 KF>            btfsc STATUS, C
 KF>            incf B, f

Сказали сделать то, что обычные процы делают командой addc, adc, etc.  Hа
пике это - много команд.  Так как adc не только прибавляет перенос, но ещё
и выставляет его корректно, а извраты с отдельным прибавлением числа и
переноса таким свойством не обладают.


Bye...


пpинцип yмножения/деления
Привет Vadik!

Monday July 21 2003 18:22, Vadik Akimoff wrote to Kirill Frolov:

 VA> Hi!
 VA>
 VA> In a message of 21 Jul 03 Kirill Frolov wrote to Anatoly Mashanov:
 VA>
 AM>>> Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и
 AM>>> поместить pезультат в Це и пеpенос". Что неудобно.
 VA>
 KF>>    Есть:
 KF>>            addwf A
 KF>>            btfsc STATUS, C
 KF>>            incf B, f
 VA>
 VA> Сказали сделать то, что обычные процы делают командой addc, adc, etc.  Hа
 VA> пике это - много команд.  Так как adc не только прибавляет перенос, но ещё
 VA> и выставляет его корректно, а извраты с отдельным прибавлением числа и
 VA> переноса таким свойством не обладают.

А вот в MCS-48 так вообще команды вычитания небыло....


    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://www.altor.tk



Re: пpинцип yмножения/деления
Здравствуй, Alexander Torres!
июля месяца двадцать первого дня ты писал(а):


[...]

 VA>>
 VA>> Сказали сделать то, что обычные процы делают командой addc, adc, etc.
 VA>> Hа пике это - много команд.  Так как adc не только прибавляет перенос,
 VA>> но ещё и выставляет его корректно, а извраты с отдельным прибавлением
 VA>> числа и переноса таким свойством не обладают.

 AT> А вот в MCS-48 так вообще команды вычитания небыло....

Потому они и померли :-))).

Хорошо хоть в PIC18 появились ADDWFC и SUBWFB/SUBFWB,
а то очень уж громоздкая арифметика для многобайтных
чисел получалась.


С уважением, Игорь Хавторин (aka Gary).
E-mail: gary <точк> kedr <собак> overta <точк> ru
          /Черт бы побрал всех этих спамеров/



пpинцип yмножения/деления
Hi Vadik, hope you are having a nice day!


21 Июл 03, Vadik Akimoff wrote to Kirill Frolov:

 AM>>> Да, пока не забыл. В ПИКе нет команды "Сложить А, Бэ и пеpенос и
 AM>>> поместить pезультат в Це и пеpенос". Что неудобно.

 KF>>    Есть:
 KF>>            addwf A
 KF>>            btfsc STATUS, C
 KF>>            incf B, f

 VA> Сказали сделать то, что обычные процы делают командой addc, adc, etc.
 VA> Hа пике это - много команд.  Так как adc не только прибавляет перенос,
 VA> но ещё и выставляет его корректно, а извраты с отдельным прибавлением
 VA> числа и переноса таким свойством не обладают.

"Извраты" таким свойством обладают:

    movf    A,W
    btfsc   STATUS,C
    incfsz  A,W
    addwf   B,F

А вот флаг Z действительно выставляется некорректно.

WBR,
    AVB

ICQ# 43835774
mailto: avb<at>dialup.etr.ru

пpинцип yмножения/деления
Hi!

In a message of 22 Jul 03 Alexey V Bugrov wrote to me:

 VA>> Сказали сделать то, что обычные процы делают командой addc, adc, etc.
 VA>> Hа пике это - много команд.  Так как adc не только прибавляет перенос,
 VA>> но ещё и выставляет его корректно, а извраты с отдельным прибавлением
 VA>> числа и переноса таким свойством не обладают.
 AVB> "Извраты" таким свойством обладают:

 AVB>     movf    A,W
 AVB>     btfsc   STATUS,C
 AVB>     incfsz  A,W
 AVB>     addwf   B,F

Хитро :)
А с вычитанием что?


Bye...


пpинцип yмножения/деления
Hi Vadik, hope you are having a nice day!


22 Июл 03, Vadik Akimoff wrote to Alexey V Bugrov:

 VA>>> etc. Hа пике это - много команд.  Так как adc не только
 VA>>> прибавляет перенос, но ещё и выставляет его корректно, а извраты
 VA>>> с отдельным прибавлением числа и переноса таким свойством не
 VA>>> обладают.
 AVB>> "Извраты" таким свойством обладают:

 AVB>>     movf    A,W
 AVB>>     btfsc   STATUS,C
 AVB>>     incfsz  A,W
 AVB>>     addwf   B,F

 VA> Хитро :)
 VA> А с вычитанием что?

Совершенно аналогично:

    movf    A,W
    btfss   STATUS,C
    incfsz  A,W
    subwf   B,W

Читайте аппноты - они рулез. :)

WBR,
    AVB

ICQ# 43835774
mailto: avb<at>dialup.etr.ru

пpинцип yмножения/деления
Hi!

In a message of 22 Jul 03 Alexey V Bugrov wrote to me:

 VA>> А с вычитанием что?
 AVB> Совершенно аналогично:
[skip]

 AVB> Читайте аппноты - они рулез. :)

Аппноты рулез конечно, но всех не перечитаешь :)
Полезно однако и тут поднять кой-какие вопросы...


Bye...


Re: пpинцип yмножения/деления
Hello Igor!


 IH>>> Хорошо хоть в PIC18 появились ADDWFC и SUBWFB/SUBFWB,

 AT>> Что, в самом деле появились? :-)

 IH> Говорят что появились. Hадо будет взять какой-нибудь PIC18Cxxx/JW
 IH> и проверить через окошко :-)).

Извращенец. Возъми PIC18F458 - флешевый, DIP40, ноги как у PIC16C74го,
стоимость (у Microchip.ru в магазине) ниже 290 руб. И балуйся на здоровье ;-)

Rifkat

        [Team /GRAVE\] snipped-for-privacy@mail.ru

Re: пpинцип yмножения/деления
Здравствуй, Rifkat Abdulin!
июля месяца двадцать четвертого дня ты писал(а):

 IH>>>> Хорошо хоть в PIC18 появились ADDWFC и SUBWFB/SUBFWB,

 AT>>> Что, в самом деле появились? :-)

 IH>> Говорят что появились. Hадо будет взять какой-нибудь PIC18Cxxx/JW
 IH>> и проверить через окошко :-)).

 RA> Извращенец. Возъми PIC18F458 - флешевый, DIP40, ноги как у PIC16C74го,
 RA> стоимость (у Microchip.ru в магазине) ниже 290 руб. И балуйся на
 RA> здоровье ;-)

Ты чесчур серьезно воспринял этот абзац (странно - даже смайлы не помогли).
Предлагалось через окошко (у кого слабое зрение - с помощью микроскопа :-),
заглянуть внутрь (должна же где-то на "камне" быть выбита система команд
:-))).

 RA> Rifkat


С уважением, Игорь Хавторин (aka Gary).
E-mail: gary <точк> kedr <собак> overta <точк> ru
          /Черт бы побрал всех этих спамеров/



Re: пpинцип yмножения/деления
Здравствуй, Alexander Torres!
июля месяца двадцать третьего дня ты писал(а):


[...]
 IH>>
 IH>> Говорят что появились. Hадо будет взять какой-нибудь PIC18Cxxx/JW
 IH>> и проверить через окошко :-)).

 AT> Проверь, а я пока на Си напишу, и пусть он сам думает - какие там у
 AT> процессора команды. вот еще на пик18 память экономить....

Таки и я на С, но вот попадаются очень "узкие" по времени места, где
приходится одну-две процедурки на ASM написать - там и намаялся.


 IH>> А насчет 16-битных - уже думалось (обзорно). Основные требования -
 IH>> наличие высокотемпературных вариантов (Extended или Automotive) и
 IH>> 10-12-битный АЦП на борту (3-4 канала), не помешают, так же, ШИМ и
 IH>> SPI. Были бы кстати IIC/UART, но в крайнем случае сойдут и программные
 IH>> :). Может видел/слышал/применял и посоветуешь чего с вершин своего
 IH>> опыта?

 AT> Применял давно, сейчас неактуально. Тут тебе например про TI все
 AT> расскажут, а мне они не подошли, посему хватает пока 8-битных пиков,
 AT> 51-х и ST7.

"Будем искать" (с).

С уважением, Игорь Хавторин (aka Gary).
E-mail: gary <точк> kedr <собак> overta <точк> ru
          /Черт бы побрал всех этих спамеров/



Site Timeline