<<
>>

Ограничение области видимости для меток

Применение команд, описанных в данной главе, предполагает довольно интенсив- ное использование меток. На определенном этапе работы многие программисты типовые фрагменты кода берут из ранее разработанных программ, реализуя свое- образное фрагментарно-модульное программирование.
При этом может оказать- ся, что фрагменты кода имеют одинаковые метки. Что делать — пересматривать весь текст? Если не проанализировать код с должным вниманием, потом можно провести много часов за работой с отладчиком или, что еще хуже, программа на- чнет неправильно работать у заказчика. Поэтому полезными могут оказаться не- которые средства работы с метками, описанные в этом разделе. Пакет TASM поддерживает директиву LOCALS, разрешающую использовать в программе локалън ые блоковые метки. Формат директивы: LOCALS[символ_префикса] Операнд символ_префикса определяет двухсимвольное имя, которое впослед- ствии потребуется при автоматическом формировании меток в качестве их пер- вых символов. По умолчанию в качестве символа префикса используется двух- символьная комбинация @@.
Благодаря механизму локальных блоковых меток можно в пределах одной про- граммы, но в разных блоках, использовать одинаковые метки. В качестве блока здесь понимаются две конструкции — процедуры и фрагменты программы между двумя обычными метками. Структурно вариант с процедурами выглядит так: model, small .data' LOCALS ;@@ - префикс локальных меток по умолчанию prod proc i⅞ml: prod endp рrос2 proc @@ml: рrос2 endp Итоги 235 Область видимости локальных блоковых меток также можно ограничить обыч- ными метками. Для примера возьмем фрагмент последней программы и поставим в ней бессмысленные с точки зрения логики, но наглядные в контексте нашего обсуждения локальные блоковые метки: Результат трансляции будет положительным, одноименные локальные блоко- вые метки @@ml будут интерпретированы транслятором как разные. Пакет MASM также поддерживает механизм определения локальных блоко- вых меток, позволяя определить три ближние метки с предопределенными имена- ми: @@, @F и @В. Между этими метками существует связь. Определение метки с именем @@ указывает транслятору на необходимость заменить ее уникальной меткой в форме @@хххх, где хххх — уникальное в пределах текущей программы шестнадцатеричное значение. После того как такая метка определена, на нее мож- но ссылаться с помощью неизменяемых меток @F и @В:
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Ограничение области видимости для меток:

  1. 1. Создание видимости одного преступления для сокрытия другого
  2. Статья 58. Служебные ограничения для военнослужащих.
  3. Видимость; а не суть
  4. МЕТОД ВИДИМОЙ ПОДДЕРЖКИ.
  5. «Видимый» вес ауры
  6. § 4. Ограничения патентных прав: Общие положения. Ограничения по территории и кругу лиц (п. 1624-1627)
  7. § 57 Общие понятия об ограничении собственности с положительной и с отрицательной стороны. – Государственные ограничения. – Ограничения по сущности вотчинного права. – Реальное их свойство. – Право в чужой вещи. – Эмфитеозис. – Суперфиция. – Сервитут. – Виды и закон сервитутов. – Поземельные повинности германского права. – Сервитуты по местным законам прибалтийских губерний
  8. Глава 34 МЫ ВИДИМ ТО, ВО ЧТО ВЕРИМ
  9. Отдаленность результата. Нет видимых изменений
  10. Слушайте радио. Остальное — видимость