Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основные директивы ассемблераСодержание книги
Поиск на нашем сайте Напомним, что директивы (псевдооператоры) — это инструкции ассемблеру, они обрабатываются только при ассемблировании (трансляции) программы. Приведем некоторые из часто используемых директив. Директивы определения идентификаторов Присваивают идентификатору с данным именем некоторое текстовое или числовое значение (выражение). Формат директив: имя EQU текст имя = числовое значение (выражение) Разница между псевдооператорами EQU и =: l EQU — присваивает значение постоянно (изменять нельзя), текст может быть символьным, числовым или смешанным выражением, определяющим константу, адрес, другое символьное имя, метку и т.д.; l = — выполняет текущее присваивание (значение может быть переназначено, но только при трансляции, естественно); присваивает только числовое выражение, содержащее простые математические преобразования, которые при трансляции и будут выполнены (например: const + 1, 15H*4, 3*12/4 и т.п.). Директивы определения данных Используются для идентификации переменных и полей памяти. Формат директивы [имя] D* выражение [,выражение] [,...]. Ключевые слова D* могут быть следующими: l DB — определить байт (1 байт); l DW — определить слово (2 байта); l DD — определить двойное слово (4 байта); l DQ — определить 8 байтов; l DT— определить 10 байтов. Рассматриваемые директивы объявляют переменную (имя) или присваивают полям (ячейкам) памяти начальные значения; резервируют в памяти (с более поздним присвоением значения) один или несколько байтов — DB, слов — DW, двойных слов — DD и т.д. Выражение показывает, какое количество элементов памяти необходимо выделить и какие данные там должны содержаться. Выражение может быть: l константой: l 65 5352 – 1 = 4 294 967 295; l вектором или таблицей: l строкой символов: l пустым полем: l символическим именем переменной: l простым выражением: Директивы определения сегментов и процедур Сегмент определяется псевдооператорами: имя_сег segment ... имя_сег ends В программе можно использовать 4 сегмента (по числу сегментных регистров) и для каждого указать соответствующий регистр сегмента псевдооператором ASSUME(assume — присвоить), например: codeseg sedment assume CS:codeseg, DS:dataseg, SS:stackseg .. codeseg ends В директиве ASSUME регистр_сег:имя_сег [,..], в частности, ASSUME cs:codeseg, указывается, что для сегмента имя_сег (codeseg) выбран регистр регистр_сег (CS). После директивы ASSUME следует явным образом загрузить адрес начала сегмента данных в регистр DS: mov AX, dataseg mov DS, AX Процедура определяется псевдооператорами: имя_процедуры proc [far]... ... ret имя_процедуры endp При определении процедуры после ключевого слова proc должен быть указан атрибут дистанции nearили far; если этого атрибута нет, то по умолчанию подразумевается near. Обычно процедура должна заканчиваться командой ret (return). Если процедура объявлена как near, то обращение к ней (call) должно производиться из того же сегмента; если procfar, то из любого сегмента (в этом случае командой ret из стека при возврате будет извлечено два слова: для IP и для CS).
|
||
|
Последнее изменение этой страницы: 2021-11-27; просмотров: 150; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.007 с.) |