| Titus |
2nd October 2011 18:48 |
Quote:
Originally Posted by Alex_K
(Post 420249)
А исходники можно ? А то так ничего не понятно.
---------- Post added at 17:32 ---------- Previous post was at 17:30 ----------
И кстати. На реальном УКНЦ работает без проблем?
|
Нет, исходники нельзя) Это набросок. Да и не поможет вам исходник, т.к. там просто идет перебор всех комбинаций сдвига, и в какой из них ошибка - выявить невозможно, т.к. финальное число - это сумма всех предыдущих.
На реальном работает.
Да я вам и так скажу, почему ошибка.
Счетчик сдвига - это 6-битное число со знаком -32..31.
Тогда как в эмуляторе делается следующее:
src |= (src & 040)?0177700:0;
Как мы видим, если знак отрицательный, то он расширяется в старшие биты. Тогда как если знак положительный, то ничего не расширяется, а остается, как есть. Т.е. все биты 6..15 будут такие, как в операнде источнике.
Попробуйте поставить перед этой строкой такую, может заработает:
src = src & 0x3F;
|