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

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

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

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

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

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

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

 
Опции темы
Непрочитано 21.10.2004, 07:49  
andrey tretyakov
Гость
 
Сообщений: n/a
По умолчанию Мк51: Торможу с делением двух чисел.

Помогите, пожалуйста.

Воощем попросили меня написать программу для МК51. Программировать я умею, но как то все больше на С++ (да, прикладник... ).
Но ничего, разобрался в его ассемблере, обсосал задачу.
Но встала единственная проблема:

После всех движений, в регистрах R0, R1 получается 16битное число, которое надо разделить на коэффициент 62. (Или 31). Делить 16 бит на степени 2ки я умею. Делить 8 бит на 8 бит - команда есть.

А как разделить 16 бит на 8 бит не являющейся степенью 2ки?

Подскажите, или в урл полезный ткните...
Реклама:
 
Непрочитано 21.10.2004, 12:11  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Мк51: Торможу с делением двух чисел.

Сообщение от andrey tretyakov
Воощем попросили меня написать программу для МК51. Программировать я умею, но как то все больше на С++ (да, прикладник... ).
Но ничего, разобрался в его ассемблере, обсосал задачу.
Но встала единственная проблема:

После всех движений, в регистрах R0, R1 получается 16битное число, которое надо разделить на коэффициент 62. (Или 31). Делить 16 бит на степени 2ки я умею. Делить 8 бит на 8 бит - команда есть.

А как разделить 16 бит на 8 бит не являющейся степенью 2ки?

Подскажите, или в урл полезный ткните...
Вот нашел что-то в архивах:
Код:
;----------------------------------------------
; Деление 2-х байтного на 1 байтное без знака
; Исходное R6:R5, делитель R4, результат на
; месте исходного, остаток в аккумуляторе
;
; Портим:ACC,PSW,R4-R7 (R4 не меняется, R7=0)
; Время - 255 тактов макс
; Работать должна в 0 банке регистров!
; не проверяется деление на 0
;----------------------------------------------
;
; ЗЫ: интересно, а можно ли еще короче?
; наверное - предыдущий вариант был 260 тактов.
;			(C)NML, 21-Sep-2000
;----------------------------------------------

DIV21B:
	clr	A		;
	mov	R7,#16		;
	clr	C		;[7]
				;
$L:
	xch	A,R5		; 
	rlc	A		;
	xch	A,R5		;
	xch	A,R6		;
	rlc	A		;
	xch	A,R6		;
	rlc	A		;

	cjne	A,4,$+3		; 4 = R4 банка 0
	jc	$W		;
	subb	A,R4		;
$W:
	cpl	C		;
	djnz	R7,$L		;[15*16]

	xch	A,R5		; 
	rlc	A		;
	xch	A,R5		;
	xch	A,R6		;
	rlc	A		;
	xch	A,R6		;
	
	RET			;[8]  Sum=[255] max ! с вызовом и возвратом
;----------------------------------------------
nml вне форума  
Непрочитано 21.10.2004, 12:49  
andrey tretyakov
Гость
 
Сообщений: n/a
По умолчанию Re: Мк51: Торможу с делением двух чисел.

Сообщение от nml
Вот нашел что-то в архивах:[code]
Спасибо большое!
 
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование чисел Alien2057 Цифровые сигнальные процессоры 1 25.04.2009 09:44
Программа перевода чисел. FOLKSDOICH Микроконтроллеры, АЦП, память и т.д 5 17.08.2008 14:12
Умножение многоразрядных чисел на PIC Tujman Микроконтроллеры, АЦП, память и т.д 1 04.02.2007 23:12
генератор случайных чисел ZyXEL Микроконтроллеры, АЦП, память и т.д 1 26.02.2006 08:49
РПП в МК51 Romio Микроконтроллеры, АЦП, память и т.д 4 19.10.2005 10:39


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


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