Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Лабораторная работа № 4. Организация переходов и циклов на языке Ассемблера




Организация переходов и циклов на языке Ассемблера

Цель: Выработка навыков работы с командами условного, безусловного перехода, формирования условий, конструирования циклов на языке ассемблера.

Задачи:

ü изучить механизм работы команды безусловного перехода JMP, оператора SHORT, команд сравнения и условного перехода: CMP и Jxx, команд управления циклом: LOOP, LOOPE/LOOPZ и LOOPNE/LOOPNZ.

ü Получить практические навыки по программирования разветвляющих и циклических программ.


Теоретическая часть

Команды перехода.

Последовательностью выполнения команд управляет регистр команд IP. В разветвляющихся и циклических программах, при организации подпрограмм и обработке прерываний выполняется не следующая команда, а та, которая находится в ячейке программной памяти, определяемой адресом перехода. Команды, которые каким-либо образом модифицируют указатели программной памяти в регистрах IP и CS называется командами передачи управления.

Сегментная организация памяти определяет две разновидности команд передачи управления. Передача управления в пределах текущего сегмента кода называется внутрисегментной или близкой (near). Команда такого типа модифицирует только значение регистра IP, а адрес перехода определяется байтом или словом.

Передача управления вне текущего сегмента кода называется межсегментной или дальней (far). При этом изменяются содержимое регистров IP и CS, и адрес перехода представляется двумя словами: seg:off.

В зависимости от способа определения адреса перехода, передачи управления могут быть прямыми или косвенными. При прямом переходе в качестве адреса перехода указывается метка той команды, на которую надо передать управление. Имеется два вида прямого перехода: короткий (с 8-битовым смещением) и длинный прямой (с 16-битовым смещением) переходы. Возможен переход вперед и назад по тексту программы.

В случае ссылки назад (по тексту программы) формирование команды короткого или длинного перехода выполняется автоматически по длине смещения. В случае ссылки вперед (по тексту программы) необходимо иметь дополнительную информацию для формирования машинной команды перехода. Для обозначения того, что переход будет коротким в языке Ассемблера используется оператор short (короткий), который ставится в команде перехода перед меткой. Обычно этот оператор используют лишь тогда, когда сокращение памяти, занимаемой программой является актуальной.

При косвенном переходе в команде перехода указывается не сам адрес перехода, а то место, где находится этот адрес. Таким местом может быть регистр общего назначения или слово памяти. Косвенные переходы используются в тех случаях, когда адрес перехода становится известным только во время счета программы.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных