Вот опять мы с tnt23 разворачивание циклов и использование стека (с которым будет быстрее и короче) обсуждали за кадром. Оптимизация отдельных критичных фрагментов - это хорошо, но сначала в целом бы получить хороший рабочий вариант.
Вид для печати
Вот опять мы с tnt23 разворачивание циклов и использование стека (с которым будет быстрее и короче) обсуждали за кадром. Оптимизация отдельных критичных фрагментов - это хорошо, но сначала в целом бы получить хороший рабочий вариант.
В конкретном случае ракетки, может быть просто сделать ее пошире с черными полями так, чтобы он сама свои края при перемещении затирала? А то как-то много чести целиком экран под ней стирать каждый кадр. Надо только учесть, насколько широкие должны быть поля с учетом максимальной скорости. Или ты уже это пробовал, но получается, что быстрее стереть целиком?
Кстати о разворачивании, прекрасм поддерживает синтаксис в стиле:
Это конечно не макросы, но все-таки иногда позволяет записать развернутые фрагменты чуть более читабельно.Код:ldax d \ mov m, a \ inx d \ inx h ; ftagn!
- - - Добавлено - - -
btw, строго говоря, "push hl", "dad bc" -- это чуток девиантно для 8080, надо "push h", "dad d", etc. Прекрасм это терпит, но лучше писать правильно.
Нет, такое мне в голову не приходило. Загрузился и думаю.
- - - Добавлено - - -
Пишу так скорее для себя, чтобы глазом видеть, где работа с регистровой парой идет. Буду исправляться.Цитата:
btw, строго говоря, "push hl", "dad bc" -- это чуток девиантно для 8080, надо "push h", "dad d", etc. Прекрасм это терпит, но лучше писать правильно.
Denn, хороший вариант, но насколько помню, флаги - младший байт psw, A - старший. Если я не ошибся, то после push psw нужно lxi h,1
абсолюютно правильный подход
push h это скорей всего дебилизм разработчиков мнемоник 8080
аf вообще обозвали psw...
потом они исправились...
что примечательно в ARM-е вообще не заморачивались
и SP и PC лежат среди обычных регистров под именами r13, r15
- - - Добавлено - - -
просто положи org-ом оно в конец памяти и все
да и можно ложить несколько маленьких таблиц\буферов друг за другом
имея один общих старший адрес если мало памяти
потом в финальной версии передвинешь максимально близко к концу кода
А так часто одни ассемблері понимают сорці других ассемблеров?
(выделываются даже разные версии...)
при необходимости все можно будет подправить автозаменой...
просто в сорце нужно указовать чем компилить
...
я вообще ложу компилятор вместе с сорцами
чтоб компилилось из коробки и без плясок с бубном