Gennadiy, Перечислите случаи, когда вам нужно было "прибивать" переменную гвоздями к конкретному месту в ОЗУ?
Вот когда переменная должна лежать только в этом месте и ни в каком другом?
equ именно это и делает. Но тогда распределение переменных в ОЗУ становится вашей головной болью.
Переносимость кода резко падает. Поскольку в других проектах нужно заново пересчитывать расположение переменных в ОЗУ.
И зачем?
Есть правильный инструмент, поддерживаемый компиляторами и отладчиками. но нужно придумывать что то свое.
Директива equ говорит компилятору, где должна быть переменная.
А директива byte - сколько занимает ваша переменная.
И к той и к другой можно обращаться одинаково - по имени.
Но в случае изменений в проекте, когда надо буферу размерчик добавить, или ввести новую переменную - придется руками пересчитать все equ, которые лежат после новой переменной или обновленного буфера.
В случае byte - компилятор сам подвинет все прозрачно для программы.... И в 99.8% случаев это никак не повлияет на программу.
Остаются редкие случаи, когда на область ОЗУ проецируется какая то периферия или внешнее ОЗУ - там да, нужно явно указать, откуда оно начинается.
Или когда буфер должен начинаться с какого то кратного адреса, что б указатель легче обсчитывать ... Но это блин , настолько редкие случаи....
Откройте любой учебник по асму, прочтите, как резервировать ОЗУ - и радуйтесь жизни
