Учебник по ассемблеру (ASM)
 

Ассемблер в примерах - Оператор END

Вопрос:
В каких случаях нужен оператор END, закрывающий последний сегмент и обозначающий конец исходного текста программы. Он то стоит в самом конце программ, то его нет. В разных программах по-разному.

Ответ:
Давайте разберемся с END
Этот оператор нужен для указания ассемблеру конца модуля,
поэтому он обязателен.
Кроме этого, у одного (или единственного) модуля должна быть
указана точка входа, что и делается (как правильно замечено)
при помощи метки точки входа возле оператора END
Но это все тот же оператор END!

Теперь о упрощённых директивах типа .data, .code
Как раз эти директивы не влияют на оператор END
Но есть директива, которая влияет на END, это - .strartup,
которая, в зависимости от модели памяти, настраивает сегментные регистры (для моделей, отличных от tiny),
для модели tiny устанавливает при помощи org 100h начальное смещение программы
(необходимое для COM-программы) и, что для нас очень важно, строит начальную метку @Startup.
И тогда в конце можно писать просто END. Ассемблер автоматически заменит его на END @Startup
Рекомендую посмотреть листинг программы, созданный при помощи tasm /la prog.asm.


   Вперёд
   Содержание