manwe.pdp-11.ru
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Как работает ASH?
Почему-то при сдвиге вправо (при отрицательном счетчике) устанавливаются старшие биты...
например сдвинул на 4 вправо, в итоге оказываются установленными 4 старших бита.. на месте сдвинутых
и еще какой-то шаманизм..
CLR R0
BISB (R5)+,R0
...
читает #1777777
..... не мой день сегодня.
Последний раз редактировалось S_V_B; 30.10.2018 в 17:55.
/*всегда знаковый разряд клонирует*/
И как от этого избавиться... если нужен просто ROR?
Если ASR то его прибить можно BIC, а тут блин счетчик.. смысл теряется
Последний раз редактировалось S_V_B; 30.10.2018 в 19:38.
CLC
ROR
было бы ROR R1,R2..
Логический сдвиг двигает биты, а арифметический числа со знаком. То есть, логический сдвиг влево эквивалентен арифметическому.
Но при логическом сдвиге вправо старший бит будет устанавливаться в 0 (или браться из флага, если сдвиг захватывает флаг).
А при арифметическом сдвиге вправо будет учтён старший знаковый бит.
Да это понятно, нужно логический сдвиг со счетчиком.., как вообще принято на PDP организовывать такую конструкцию? Неужели нужно таблицу переходов делать? (на нужное кол-во ROR). Вариант с SOB не катит.. очень медленно.
.....
Все разобрался, вопрос снимается..
Сделал левым ASH со счетчиком BIC n,7.. все работает быстро и красиво. ВМ2 рулит![]()
Последний раз редактировалось S_V_B; 31.10.2018 в 08:32.
Сделал вывод спрайта в любую точку и вывод строки (для оригинального текста)
https://yadi.sk/d/ZHVD8eUWDyIlmA
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)