ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Лабораторная работа № 4. Организация переходов и циклов на языке АссемблераОрганизация переходов и циклов на языке Ассемблера Цель: Выработка навыков работы с командами условного, безусловного перехода, формирования условий, конструирования циклов на языке ассемблера. Задачи: ü изучить механизм работы команды безусловного перехода JMP, оператора SHORT, команд сравнения и условного перехода: CMP и Jxx, команд управления циклом: LOOP, LOOPE/LOOPZ и LOOPNE/LOOPNZ. ü Получить практические навыки по программирования разветвляющих и циклических программ. Теоретическая часть Команды перехода. Последовательностью выполнения команд управляет регистр команд IP. В разветвляющихся и циклических программах, при организации подпрограмм и обработке прерываний выполняется не следующая команда, а та, которая находится в ячейке программной памяти, определяемой адресом перехода. Команды, которые каким-либо образом модифицируют указатели программной памяти в регистрах IP и CS называется командами передачи управления. Сегментная организация памяти определяет две разновидности команд передачи управления. Передача управления в пределах текущего сегмента кода называется внутрисегментной или близкой (near). Команда такого типа модифицирует только значение регистра IP, а адрес перехода определяется байтом или словом. Передача управления вне текущего сегмента кода называется межсегментной или дальней (far). При этом изменяются содержимое регистров IP и CS, и адрес перехода представляется двумя словами: seg:off. В зависимости от способа определения адреса перехода, передачи управления могут быть прямыми или косвенными. При прямом переходе в качестве адреса перехода указывается метка той команды, на которую надо передать управление. Имеется два вида прямого перехода: короткий (с 8-битовым смещением) и длинный прямой (с 16-битовым смещением) переходы. Возможен переход вперед и назад по тексту программы. В случае ссылки назад (по тексту программы) формирование команды короткого или длинного перехода выполняется автоматически по длине смещения. В случае ссылки вперед (по тексту программы) необходимо иметь дополнительную информацию для формирования машинной команды перехода. Для обозначения того, что переход будет коротким в языке Ассемблера используется оператор short (короткий), который ставится в команде перехода перед меткой. Обычно этот оператор используют лишь тогда, когда сокращение памяти, занимаемой программой является актуальной. При косвенном переходе в команде перехода указывается не сам адрес перехода, а то место, где находится этот адрес. Таким местом может быть регистр общего назначения или слово памяти. Косвенные переходы используются в тех случаях, когда адрес перехода становится известным только во время счета программы. Не нашли, что искали? Воспользуйтесь поиском:
|