Сейчас попробую, но все равно большого прироста скорости это не даст..
нужно что-то принципиально изменить.. сдвиг убрать из вывода на экран
Вид для печати
Сейчас попробую, но все равно большого прироста скорости это не даст..
нужно что-то принципиально изменить.. сдвиг убрать из вывода на экран
Вот:https://yadi.sk/i/UV3xG8qFI9RvzA
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 получается часть вторго плана лезет в первый.. и поэтому цветомузыка получается.
Давай так, когда у тебя будет рабочий исходник с твоей процедурой печати, ты мне ее просто пришли, я в нем заменю на свою и отлажу сам. Потому что, как мне кажется, никто мою идею не понял)
- - - Добавлено - - -
А ты просчитай) Разумеется, константа 0x0F0F - это пример константы для сдвига на 4. Для других сдвигов должны браться другие константы.
Быстрее или медленней можно понять только попробовав.
К тому же, поскольку я не знаю окружение этого кода и уже не помню особенности работы с графикой на УК-НЦ (да, в своё время пробовал - но игрался в отдельными подпрограммами из ГРАФОР-а, а это не игрушечная графика и там всё немного по другому) - я сознательно оставил некоторые исходные особенности поведения.
Но доводить код не то что до идеала - даже до рабочего состояния - нет, не интересно - с графикой на УК-НЦ я могу столкнутся, только если решу, что неплохо бы иметь вариант УК-НЦ в стиле МС1201.2018, но шанс на это мал и даже если интерес на такую поделку сыграет - это вряд ли будет в ближайшую пятилетку, а значит я опять всё забуду
- - - Добавлено - - -
Быстрый, но не работающий или медленный, но работающий - выберите два из двух ;)