-
- И по большому счету, коэффициент не обязан быть постоянным, просто он действительный 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)