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

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

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

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

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

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

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

 
Опции темы

Умножение на 4

Непрочитано 29.07.2003, 08:33  
Leonardo
Гость
 
Сообщений: n/a
По умолчанию Умножение на 4

Как умножитьь 16-битное число на 4 ? Может какая-то хитрость есть ?
Реклама:
 
Непрочитано 29.07.2003, 10:33  
DK
Почётный гражданин KAZUS.RUN
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
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, 15:22  
a2226
Частый гость
 
Регистрация: 13.05.2003
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 17 раз(а) в 17 сообщении(ях)
a2226 на пути к лучшему
По умолчанию

А тоже самое в сях можно?
a2226 вне форума  
Сказали "Спасибо" a2226
warel (24.06.2019)
Непрочитано 01.08.2003, 20:05  
DK
Почётный гражданин KAZUS.RUN
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
DK на пути к лучшему
По умолчанию

моя С не знай

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

Сообщение от a2226
А тоже самое в сях можно?
Что то-же на сях ? Если умножение произвольных чисел, то просто a=b*c, ведь должен-же быть там UINT, а если умножение на 4 сдвигом, то a=b‹‹2; или a‹‹=2;
 
Непрочитано 04.08.2003, 11:16  
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, 16:21  
Гость
 
Сообщений: n/a
По умолчанию

Для a2226
Вы писали:
Цитата:
Я думал чё новенького скажите...
Похоже Вы не только не асмист, но и не Сист.
 
Непрочитано 06.08.2003, 12:46  
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, время: 04:10.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.