WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

Метка (англ. 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), т. е. смещением между метками.

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии