ZXNet эхоконференция «code.zx»
тема: Конечно наверное это не очень
от: Valery Grigoriev
кому: All
дата: 20 Nov 2005
Hello, GriV
эффективно (в смысле затрат памяти) - использовать символьные имена для работы
с п/п ПЗУ :D (я бы даже более сказал :D) однако имеет право на жизнь хотя бы
потому, что такие функции никогда не перекроют друг друга.
Hапример:
call PrintChar
А если взять безликий
RST 16
defb 81
defb 12
то тому, кто будет писать такую п/п будет необходимо будет держать в руках
справочник чтобы смотреть соответствие между вызываемой функцией и её байтами
описателями (те самые defb) - такую работу должен выполнять не программист, а
машина.
Да и запомнить символьное имя PrintChar в любом случае проще.
Кроме того, символьные имена хорошо жмутся (5 бит используют из 8, если даже
взять спецсимволы то 6 бит из 8, или скажем обработать хаффманом), так что
трёхсимвольное имя будет кушать практически столько же места сколько вызов
через DefB.
P.S. Под перекрытием я подразумеваю возможность вызова разных функций при том
же синтаксисе - PrintChar либо не оттранслируется вообще, потому что нет такой
функции, либо будет транслироваться замечательно. Rst Defb Defb при смене
набора функций придётся отслеживать. Первый Defb отвечает за группу функций -
если после обновления версии случилось так что группа расширилась за 256
значений функций, то придётся ещё один номер группы резервировать и это в свою
очередь головняк и головняк
|