Метка (программирование)

Поделись знанием:
Перейти к: навигация, поиск

Метка (англ. label) — символьное имя, идентификатор для более удобного указания данных и кода в языках программирования. Позволяет программисту обходиться без вычисления и пересчёта адресов и смещений внутри программы (эти действия за него выполняет компилятор). Несмотря на то, что большинство языков программирования высокого уровня поддерживают операции с метками, их использование крайне нежелательно, так как программный код становится плохочитаемым, и отладка такой программы занимает большее время.

При компиляции каждой метке сопоставляется определённый адрес (число), который заносится в исполняемый модуль. Таким образом, в случае необходимости компилятор может вычислить смещение между метками (разность адресов).

В большинстве языков программирования формат записи метки такой:

название_метки:

Сначала идет название метки (также записанное по определенным правилам — в зависимости от языка программирования), затем двоеточие, затем код или данные, доступ к которым будет осуществляться по названию метки.



Пример

  ;…
  mov eax, offset data
  jmp label_2
label_1:
  ;…
label_2:
  ;…
data:
  db "Привет!", 0

Во время ассемблирования метке data будет сопоставлено число (адрес первого байта строки «Привет!») и вместо 'offset data' в первой строке будет записано это число.

Во второй строке примера осуществляется безусловный переход (jump) на инструкции, следующие после метки label_2. Если адрес абсолютный (т. е. аргументом команды перехода является сам адрес), то во второй строке вместо label_2 будет записан адрес метки label_2. Если же переход относительный (задается смещением относительно текущей метки), тогда label_2 в этой же (второй) строке будет заменён на разность адресов (label_2 — label_1), т. е. смещением между метками.

См. также

Напишите отзыв о статье "Метка (программирование)"

Отрывок, характеризующий Метка (программирование)

Отходя от Мальвинцевой, Ростов хотел вернуться к танцам, но маленькая губернаторша положила свою пухленькую ручку на рукав Николая и, сказав, что ей нужно поговорить с ним, повела его в диванную, из которой бывшие в ней вышли тотчас же, чтобы не мешать губернаторше.
– Знаешь, mon cher, – сказала губернаторша с серьезным выражением маленького доброго лица, – вот это тебе точно партия; хочешь, я тебя сосватаю?
– Кого, ma tante? – спросил Николай.
– Княжну сосватаю. Катерина Петровна говорит, что Лили, а по моему, нет, – княжна. Хочешь? Я уверена, твоя maman благодарить будет. Право, какая девушка, прелесть! И она совсем не так дурна.
– Совсем нет, – как бы обидевшись, сказал Николай. – Я, ma tante, как следует солдату, никуда не напрашиваюсь и ни от чего не отказываюсь, – сказал Ростов прежде, чем он успел подумать о том, что он говорит.
– Так помни же: это не шутка.
– Какая шутка!
– Да, да, – как бы сама с собою говоря, сказала губернаторша. – А вот что еще, mon cher, entre autres. Vous etes trop assidu aupres de l'autre, la blonde. [мой друг. Ты слишком ухаживаешь за той, за белокурой.] Муж уж жалок, право…
– Ах нет, мы с ним друзья, – в простоте душевной сказал Николай: ему и в голову не приходило, чтобы такое веселое для него препровождение времени могло бы быть для кого нибудь не весело.
«Что я за глупость сказал, однако, губернаторше! – вдруг за ужином вспомнилось Николаю. – Она точно сватать начнет, а Соня?..» И, прощаясь с губернаторшей, когда она, улыбаясь, еще раз сказала ему: «Ну, так помни же», – он отвел ее в сторону:
– Но вот что, по правде вам сказать, ma tante…
– Что, что, мой друг; пойдем вот тут сядем.
Николай вдруг почувствовал желание и необходимость рассказать все свои задушевные мысли (такие, которые и не рассказал бы матери, сестре, другу) этой почти чужой женщине. Николаю потом, когда он вспоминал об этом порыве ничем не вызванной, необъяснимой откровенности, которая имела, однако, для него очень важные последствия, казалось (как это и кажется всегда людям), что так, глупый стих нашел; а между тем этот порыв откровенности, вместе с другими мелкими событиями, имел для него и для всей семьи огромные последствия.