tvi (14.10.2012 20:16, просмотров: 187) ответил Hobo на Если всего для 3-х входов - проще сделать три ветки где в каждой в R16 будет заноситься 1,2 или 3.
В реальности то у меня так и есть - написано три блока однотипных, которые проходят последовательно по кольцу. Код то в них одинаковый, только каждый блок работает со своими флагами (их три в каждом блоке). Все бы хорошо, но программа еще не отлажена и при доработке приходится делать в каждом блоке однотипные изменения - нудно, да и ошибки бывают - где то что то пропустишь. Поэтому я и решил написать процедуру в которую передаю соответствующие параметры p1, p2 и p3, в которых прописываю индексы битов регистров флагов (всего 2 регистра флагов). Значения индексов у меня объявлены через EQU. Все работает при непосредственной подстановке констант. А в процедуру я хотел с помощью директивы .SET передавать соответствующие конкретному каналу индексы флагов, пример я указал в демопроге.
Теперь буду думать как с помощью регистров передавать параметры этой процедуре.
Просто я заблуждался, полагая, что SET создает переменные, как они понимаются в СИ, например.
Вы предлагаете создать переменные:
Вручную выделяется ячейка памяти
.EQU VAR1 = $60 // в ячейке памяти 60h будет храниться переменная
.EQU VAR2 = VAR1+1 // следующая переменная
У меня вопрос по этому предложению - как компилятор определит, что это ячейка памяти с адресом $60, а не константа с именем VAR1 со значением $60?