- 
	
- На, лентяй  MBedder(2668 знак., 18.10.2008 16:59)
			
- если int по умолчанию знаковый, тогда так:  leon_(811 знак., 11.10.2008 16:50)
					
- я думаю многим будут полезны эти макросы кто мк поближе рассматривает ) - whale(11.10.2008 17:09)
							
- Добавил в свой пост вариант leon'а для signed int и увековечил в "Исходниках" --> - MBedder(11.10.2008 19:53, ссылка, ссылка)
									
- а если еще и коэффициент знаковый, тогда так:  leon_(1923 знак., 16.10.2008 01:32)
											
- И по большому счету, коэффициент не обязан быть постоянным, просто он действительный 16-разрядный с фиксированной точкой перед самым старшим битом. Для знакового кэффициента тоже самое, только в дополнительном коде (самый старший бит - знаковый). - leon_(16.10.2008 01:51)
													
- Разумеется - просто вместо констант в регистры грузить переменную, содержащую коэффициент. Но у тебя там принципиальная ошибка - xMULSx работает только с r16..r23. Я все передоработал на FMULS (для k=+-1) и положил в SRC --> - MBedder(16.10.2008 04:47, ссылка)
															
- Где-то так, возможно я неправ. Правильно-работающие фрагменты кода с пояснениями. leon_(8020 знак., 24.10.2008 00:38)
 - Нельзя смешивать команды MULx и FMULx без учета того что FMULx еще дополнительно сдвигает результат влево на один бит, и точность правильнее указывать не в процентах, а в количествах младших разрядов. Свой вариант, если успею, выложу позже. - leon_(19.10.2008 12:49)
																	
- Именно поэтому я и применил FMULx вместе с MULx - все учтено, можешь проверить с любыми N и K. И точность в LSB выражать нет смысла - в зависимости от N и K получатся разные значения. Проценты рулят - MBedder(19.10.2008 13:26)
																			
- Вот два примера, когда Ваша подпрограмма, выставленная в исходниках, работает неправильно.  leon_(4733 знак., 23.10.2008 16:03, ссылка, ссылка)
																					
- Спасибо, позже перепроверю/доработаю - MBedder(22.10.2008 16:24)
 
 - Вот еще пример, как другая Ваша подпрограмма из этих-же исходников дает неверный результат  leon_(3887 знак., 23.10.2008 12:35, ссылка, ссылка)
																					
- Тогда доработай "мои" исходники и выложи в отдельном посте, а я заменю мой прежний файл в "исходниках" - не хочу заново писать каменты - MBedder(24.10.2008 00:33)
																							
- Я не смогу, к сожелению, сделать это нормально на английском. Можно разве-что оформить все подпрограммами и добавить программу их тестирования. Или может все оставить как есть. Как лучше сделать? - leon_(24.10.2008 01:41)
																									
- Возьми из "Исходников" мой текст и замени на доработанный, а каменты оставь прежние - MBedder(24.10.2008 01:53)
																											
- Сделал - leon_(27.10.2008 17:00)
 - Сделал новой темой. Коментарии на русском оставил, для примера, как можно интерпретировать шестнадцатиричные данные. - leon_(24.10.2008 03:19)
 
 
 - Возьми из "Исходников" мой текст и замени на доработанный, а каменты оставь прежние - MBedder(24.10.2008 01:53)
																											
 
 - Я не смогу, к сожелению, сделать это нормально на английском. Можно разве-что оформить все подпрограммами и добавить программу их тестирования. Или может все оставить как есть. Как лучше сделать? - leon_(24.10.2008 01:41)
																									
 
 - Тогда доработай "мои" исходники и выложи в отдельном посте, а я заменю мой прежний файл в "исходниках" - не хочу заново писать каменты - MBedder(24.10.2008 00:33)
																							
 - А разное колич бит получается из-за неправильной подпрограммы. - leon_(21.10.2008 12:56)
 - При умножении например 100 на 0,001, какая точность результата в % будет? - leon_(21.10.2008 12:41)
 - Будет время, обязательно проверю и возможно найду N и K которые дают неверный результат. - leon_(19.10.2008 16:23)
 
 - Вот два примера, когда Ваша подпрограмма, выставленная в исходниках, работает неправильно.  leon_(4733 знак., 23.10.2008 16:03, ссылка, ссылка)
																					
 
 - Именно поэтому я и применил FMULx вместе с MULx - все учтено, можешь проверить с любыми N и K. И точность в LSB выражать нет смысла - в зависимости от N и K получатся разные значения. Проценты рулят - MBedder(19.10.2008 13:26)
																			
 - Да уж, регистры не те. - leon_(16.10.2008 09:07)
 
 
 - Разумеется - просто вместо констант в регистры грузить переменную, содержащую коэффициент. Но у тебя там принципиальная ошибка - xMULSx работает только с r16..r23. Я все передоработал на FMULS (для k=+-1) и положил в SRC --> - MBedder(16.10.2008 04:47, ссылка)
															
 
 - И по большому счету, коэффициент не обязан быть постоянным, просто он действительный 16-разрядный с фиксированной точкой перед самым старшим битом. Для знакового кэффициента тоже самое, только в дополнительном коде (самый старший бит - знаковый). - leon_(16.10.2008 01:51)
													
 - "movw r6,r0" можно заменить на "mov r7,r1", экономим регистр. - leon_(16.10.2008 01:13)
											
- Верно - MBedder(16.10.2008 01:37)
													
- Не ожидал такого оперативного ответа. Что не спится то? - leon_(16.10.2008 01:53)
															
- Позже встанешь - позже ляжешь :)) - MBedder(16.10.2008 02:03)
 
 
 - Не ожидал такого оперативного ответа. Что не спится то? - leon_(16.10.2008 01:53)
															
 
 - Верно - MBedder(16.10.2008 01:37)
													
 - Баловство это, на С надо делать без проблем. А экономия тактов/циклов при 16 млн операций/сек не имеет смысла. - Михаил Е.(12.10.2008 16:10)
											
- Каждый сам себе Петлюра. На С невозможно использовать все преимущества регистровой архитектуры МК - первый пример leon'а весьма показателен --> - MBedder(12.10.2008 17:06, ссылка)
													
- А оно надо, использовать все преимущества? Из любви к искусству признаю, красиво. Но для практики С круче. Все эти макросы - попытка сделать из асма язык высокого уровня (например С). - Михаил Е.(12.10.2008 17:16)
															
- В обсуждаемой теме нет ни одного макроса - это архитектурно оптимальная реализация искомых функций, а не макросы. Я на чистом ассемблере уделывал, уделываю, и всегда буду уделывать любого сишника в разы и более - примеров приводилось предостаточно - MBedder(12.10.2008 17:21)
																	
- А если не заниматься растягиванием вечного бояна С <-> Asm, и делать на каждом языке то, для чего он презназначен, то будет еще круче. - Evgeny_CD(12.10.2008 17:25)
																			
- Языки не предназначены ни для чего конкретного. А вот МК предназначены для построения совершенно конкретных классов устройств, и в этих классах никакой другой метод программирования, кроме ассемблера, не оптимален - MBedder(12.10.2008 17:41)
																					
- Блин, упрямый почти как я. Короче, с меня столик в ресторане, спасибо за помощь. Договорились? - Михаил Е.(12.10.2008 17:58)
																							
- Я столько не выпью :)) - MBedder(12.10.2008 18:24)
 
 
 - Блин, упрямый почти как я. Короче, с меня столик в ресторане, спасибо за помощь. Договорились? - Михаил Е.(12.10.2008 17:58)
																							
 - Все языки предназначены для одного и того же. - Михаил Е.(12.10.2008 17:32)
 
 - Языки не предназначены ни для чего конкретного. А вот МК предназначены для построения совершенно конкретных классов устройств, и в этих классах никакой другой метод программирования, кроме ассемблера, не оптимален - MBedder(12.10.2008 17:41)
																					
 - Уделывать в чем? В производительности написания программы - не верю. А красота программного решения заказчику по барабану. - Михаил Е.(12.10.2008 17:25)
																			
- И в производительности написания, и в забивании гвоздей молотком вместо привычного микроскопа, и т.д. и т.п. В головах сишников такое не укладывается, но это факт - MBedder(12.10.2008 17:36)
																					
- Да ну, что ты так нас классифицируешь - сишники? Писал много лет на асме, а еще раньше в кодах PDP-11 прямо из ума (если он еще у меня остался) :)))))) - Михаил Е.(12.10.2008 17:40)
																							
- Да ради бога - я ведь не веду речь о компьютерном программировании, а говорю про МК. Их взялись программировать компьютерные программисты, и в 99% случаев на результаты их мазохизма без слез смотреть невозможно - MBedder(12.10.2008 17:43)
																									
- Смотреть то да, но бабки тем не менее они зарабатывают, и заказчики довольны. - Михаил Е.(12.10.2008 17:47)
																											
- А я зарабатываю гораздо больше, ибо пишу на ассемблере. Точка. - MBedder(12.10.2008 17:57)
																													
- Ты зарабатываешь не потому что пишешь на асме, а потому что у тебя так мозги устроены. Асм здесь не причем. - Михаил Е.(12.10.2008 18:06)
																															
- Патамушта их наверняка тоже на ассемблере написали :)) - MBedder(12.10.2008 18:20)
 
 - Я не волшебник, я еще только учусь:)))))) - Михаил Е.(12.10.2008 18:00)
 
 - Ты зарабатываешь не потому что пишешь на асме, а потому что у тебя так мозги устроены. Асм здесь не причем. - Михаил Е.(12.10.2008 18:06)
																															
 
 - А я зарабатываю гораздо больше, ибо пишу на ассемблере. Точка. - MBedder(12.10.2008 17:57)
																													
 
 - Смотреть то да, но бабки тем не менее они зарабатывают, и заказчики довольны. - Михаил Е.(12.10.2008 17:47)
																											
 
 - Да ради бога - я ведь не веду речь о компьютерном программировании, а говорю про МК. Их взялись программировать компьютерные программисты, и в 99% случаев на результаты их мазохизма без слез смотреть невозможно - MBedder(12.10.2008 17:43)
																									
 
 - Да ну, что ты так нас классифицируешь - сишники? Писал много лет на асме, а еще раньше в кодах PDP-11 прямо из ума (если он еще у меня остался) :)))))) - Михаил Е.(12.10.2008 17:40)
																							
 
 - И в производительности написания, и в забивании гвоздей молотком вместо привычного микроскопа, и т.д. и т.п. В головах сишников такое не укладывается, но это факт - MBedder(12.10.2008 17:36)
																					
 
 - А если не заниматься растягиванием вечного бояна С <-> Asm, и делать на каждом языке то, для чего он презназначен, то будет еще круче. - Evgeny_CD(12.10.2008 17:25)
																			
 
 - В обсуждаемой теме нет ни одного макроса - это архитектурно оптимальная реализация искомых функций, а не макросы. Я на чистом ассемблере уделывал, уделываю, и всегда буду уделывать любого сишника в разы и более - примеров приводилось предостаточно - MBedder(12.10.2008 17:21)
																	
 
 - А оно надо, использовать все преимущества? Из любви к искусству признаю, красиво. Но для практики С круче. Все эти макросы - попытка сделать из асма язык высокого уровня (например С). - Михаил Е.(12.10.2008 17:16)
															
 
 - Каждый сам себе Петлюра. На С невозможно использовать все преимущества регистровой архитектуры МК - первый пример leon'а весьма показателен --> - MBedder(12.10.2008 17:06, ссылка)
													
 
 - а если еще и коэффициент знаковый, тогда так:  leon_(1923 знак., 16.10.2008 01:32)
											
 
 - Добавил в свой пост вариант leon'а для signed int и увековечил в "Исходниках" --> - MBedder(11.10.2008 19:53, ссылка, ссылка)
									
 
 - я думаю многим будут полезны эти макросы кто мк поближе рассматривает ) - whale(11.10.2008 17:09)
							
 
 - если int по умолчанию знаковый, тогда так:  leon_(811 знак., 11.10.2008 16:50)
					
 
 - На, лентяй  MBedder(2668 знак., 18.10.2008 16:59)