ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
361755 Топик полностью
mazur (14.10.2012 20:55, просмотров: 145) ответил tvi на В реальности то у меня так и есть - написано три блока однотипных, которые проходят последовательно по кольцу. Код то в них одинаковый, только каждый блок работает со своими флагами (их три в каждом блоке). Все бы хорошо, но программа еще не
Никак не определит. VAR1 это просто число под названием VAR1. Вообще опасно назначать переменные в ОЗУ директивами EQU. Что-то неправильно подсчитал, вылез за рамки или неправильно назначил адреса. Я с определенного момента стал делать так: есть директива .dseg Она дает знать компилятору, что все метки и переменные после этой директивы определяются в ОЗУ. Если .cseg - область памяти программ, то dseg - область памяти данных. Поэтому пишем так: .dseg VAR1: // Метки позволяют не задумываться, по какому адресу находится // эта переменная. Мы же не задумываемся, по какому адресу находится // подпрограмма Process. Если мы явно не указали директивой ORG, // с какого адреса в ОЗУ начинать назначать переменные и массивы, // то первая метка будет с начального адреса ОЗУ. То есть 0x60. // Есть МК, в которых начальный адрес будет выше. Нужно уточнять в // даташите на конкретный камень .byte 1 // Эта директива резервирует кол-во байтов, которое указывается // после директивы. MASSIV: .equ MASSIV_SIZE = 10 .byte MASSIV_SIZE