Вот:
https://yadi.sk/i/UV3xG8qFI9RvzA

Что-то действительно напутали

- - - Добавлено - - -

ASHC 073RSS (073000–073777)

ARITHMETIC SHIFT COMBINED / АРИФМЕТИЧЕСКИЙ СДВИГ ДВОЙНОГО СЛОВА


Алгоритм: tmp32[31:16] := R; tmp32[15:0] := R or 1; tmp32 := tmp32 сдвинутое на NN позиций влево или вправо, где NN – шесть младших разрядов (src); R := tmp32[31:16]; R or 1 := tmp32[15:0]
Описание: Содержимое регистров R и R or 1 копируется в 32-разрядную переменную и сдвигается влево или вправо на количество позиций, определяемое счётчиком сдвига. Функцию счётчика сдвига выполняют шесть младших разрядов операнда источника, представленных в двоичном дополнительном коде. Значение счётчика сдвига может изменяться в пределах от –32 до +31. Отрицательному значению соответствует единица в старшем разряде счётчика сдвига и обеспечивает сдвиг вправо, положительному значению соответствует 0 и сдвиг влево. Если в качестве R используется нечётный регистр, то старшая часть 32-разрядной переменной будет повторять её младшую часть, т.е. фактически выполняется операция ((R << 16) or R) и после завершения операции сдвига сохранится только младшая часть.

- - - Добавлено - - -

Весьма запутано.
Просто я ни разу не пользовался ASHC.

Весь лишний код который я написал сделан чтобы перенести в следующий байт на экране часть которая выходит за пределы при сдвиге.. и оно работает.
В ASHC получается часть вторго плана лезет в первый.. и поэтому цветомузыка получается.