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

Jul 19, 2003 19 Replies

Привет, Alexander



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



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

formatting link
была ссылка (называлась что-то вроде "арифметические операции") на зазипованный вордовский файл. там по русски расписаны алгоритмы умножения и деления и приведены программы для avr-ок с оптимизацией по коду и по времени выполнения.



WBR, Sergo. [

formatting link
]


Alexander Russkih и All в прошлый раз беседовали в четверг, 17-го июля, в 12:58

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

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

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

Пpимеp: 6*7=42

6=110 7=111 110 111

------------ 110 110 110

------------ 101010

101010=42

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

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

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

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

Привет, 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> на

formatting link
была ссылка (называлась что-то вроде "арифметические SK> операции") на зазипованный вордовский файл. там по русски расписаны SK> алгоритмы умножения и деления и приведены программы для avr-ок с SK> оптимизацией по коду и по времени выполнения. вот точная ссылка:
formatting link
WBR, Sergo. [
formatting link
]

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...

Привет 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

formatting link

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

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

Здравствуй, 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 /Черт бы побрал всех этих спамеров/

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

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...

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

Привет 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

formatting link

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 ...

Здравствуй, 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 /Черт бы побрал всех этих спамеров/

Hi!

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

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

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

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

Bye...

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

Здравствуй, 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 /Черт бы побрал всех этих спамеров/

Здравствуй, 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 /Черт бы побрал всех этих спамеров/

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required