
Сообщение от
Titus
Я не знаю, питона, поэтому пример приведу на Си:
Приведённый тобой пример будет работать в Python без каких-либо изменений, даже точки с запятой убирать не придётся
Спасибо, я поизучаю и такой вариант, попробую померить скорость и если будет выигрыш, то применю.

Сообщение от
svofski
В Питоне может быть и невелика будет разница, но я бы попробовал.
Тоже нужно будет прикинуть и измерить скорость обоих вариантов. Хотя в Python я ещё ни разу не использовал вызов функции по значению из списка - пользовался только вызовом по словарю, как в этом эмуляторе. И даже не знаю осуществимо ли это? Видимо, осуществимо.
Я уже получил довольно много полезных советов, обязательно воспользуюсь ими всеми. Мне бы сейчас заставить работать систему при варианте хранения регистров в memoryview. Мало того, что оно просто сейчас перестало работать, так ещё и всякие нюансы всплыли. Например, вариант, предложенный Titus'ом:
Код:
reg_A = (reg_A << 1) | (reg_A >> 7);
при таком методе хранения работать не будет, например, если reg_A == 0xFF. Как только сдвинутся биты внутри первых скобок я получу ошибку, что это значение не может хранится в байте. Вот и приходится огород городить из временных переменных, что явно не идёт на руку скорости эмуляции.