Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 29.07.2003, 07:33   #1
Leonardo
Гость
 
Сообщений: n/a
По умолчанию Умножение на 4

Как умножитьь 16-битное число на 4 ? Может какая-то хитрость есть ?
Реклама:
 
Непрочитано 29.07.2003, 09:33   #2
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

да какая тут хитрость, нафиг... два сдвига влево (только не потеряй два старших бита)

Вот процедура умножения 16бит на 16 бит:

Код:
Multiply 16x16 bit macro from Bob Fehrenbach, Scott Dattalo 
Posted to PICList Mon Aug 4 10:17:59 1997 

;*************************************************  ******************
; Double Precision Multiplication
;
; n_2 : n_1 * n_4 : n_3 -› q_4:q_3:q_2:q_1
;
; Standard shift and add.
; Execution time: 215 to 295 clock cycles.
; Code space: 22 locations
;
; Cleaned up and corrected version from Microchip Ap note by BF.
; Note: Ap note has errors! Additional mods by Scott Dattalo.
;
;*************************************************  ******************


mpy16b16: macro
local m1, m2
	clrf q_4
	clrf q_3
	clrf q_2
	clrf q_1
	bsf q_2, 7
m1:
	rrf n_2, f
	rrf n_1, f
	skpc
	goto m2
	movf n_3, w
	addwf q_3, f
	movf n_4, w
	skpnc
	incfsz n_4, w
	addwf q_4, f
m2:
	rrf q_4, f
	rrf q_3, f
	rrf q_2, f
	rrf q_1, f
	skpc
	goto m1

endm
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (24.06.2019)
Непрочитано 01.08.2003, 14:22   #3
a2226
Частый гость
 
Регистрация: 13.05.2003
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
a2226 на пути к лучшему
По умолчанию

А тоже самое в сях можно?
a2226 вне форума  
Сказали "Спасибо" a2226
warel (24.06.2019)
Непрочитано 01.08.2003, 19:05   #4
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

моя С не знай

З.Ы. А разве там нельзя определить переменную типа word?
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (24.06.2019)
Непрочитано 02.08.2003, 11:17   #5
Andrew
Гость
 
Сообщений: n/a
По умолчанию

Сообщение от a2226
А тоже самое в сях можно?
Что то-же на сях ? Если умножение произвольных чисел, то просто a=b*c, ведь должен-же быть там UINT, а если умножение на 4 сдвигом, то a=b‹‹2; или a‹‹=2;
 
Непрочитано 04.08.2003, 10:16   #6
a2226
Частый гость
 
Регистрация: 13.05.2003
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
a2226 на пути к лучшему
По умолчанию

Сообщение от Andrew
Если умножение произвольных чисел, то просто a=b*c, ведь должен-же быть там UINT, а если умножение на 4 сдвигом, то a=b‹‹2; или a‹‹=2;
Я думал чё новенького скажите...
a2226 вне форума  
Сказали "Спасибо" a2226
warel (24.06.2019)
Непрочитано 05.08.2003, 15:21   #7
Гость
 
Сообщений: n/a
По умолчанию

Для a2226
Вы писали:
Цитата:
Я думал чё новенького скажите...
Похоже Вы не только не асмист, но и не Сист.
 
Непрочитано 06.08.2003, 11:46   #8
a2226
Частый гость
 
Регистрация: 13.05.2003
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
a2226 на пути к лучшему
По умолчанию

Сообщение от Гость
Похоже Вы не только не асмист, но и не Сист.
Да, действительно, я на Си перешёл пол года назад...
a2226 вне форума  
Сказали "Спасибо" a2226
warel (24.06.2019)
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение многоразрядных чисел на PIC Tujman Микроконтроллеры, АЦП, память и т.д 1 04.02.2007 23:12


Часовой пояс GMT +4, время: 23:09.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot