КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Условный переход
Безусловные переходы Инструкция безусловного перехода передаёт управление команде, адрес которой указан в инструкции. Команда безусловного перехода имеет вид JMP - безусловный переход - передает управление по адресу.
В программах используют имя метки, установленной перед командой, на которую выполняется переход. Типы переходов: - переход типа short (короткий) – если адрес перехода находится в пределах от –127 до +128 байт от команды, вызвавшей переход; - переход типа near (ближний) – если адрес перехода находится в том же сегменте, что и команда, вызвавшей переход; - переход типа far (дальний) – если адрес перехода находится в другом сегменте. jmp [< тип > ptr ] операнд. <тип> - тип перехода short (короткий) – смещение 127 байтов вперёд или 128 байтов назад, near (близкий) – смещение в пределах сегмента (64 Кбайта), far (дальний) – в любой сегмент с любым смещением. ptr – приставка, которую можно перевести как указанный в. Если тип не задан, по умолчанию принимается near. Всего можно выделить пять типов безусловных переходов (таблица 3.1).
Команда условного перехода организует передачу управления при выполнении определённого в команде условия, в противном случае переход осуществляется на команду, следующую за инструкцией условного перехода. Условия определяются текущим состоянием флагов процессора. Каждая из 30 команд условных переходов проверяет определенную комбинацию флагов. Все условные переходы являются короткими, т.е. адрес перехода должен отстоять не далее, чем на - 128 или +127 байтов от первого байта следующей команды. J условие - условный переход. Это набор команд, выполняющих переход, если удовлетворяется соответствующее условие. При использовании после команды cmp, условия приобретают формулировки, соответствующие отношениям между операндами cmp. Значение аббревиатур в названии команды jcc
Эти команды осуществляют переходы типа short и near
Перечень команд условного перехода для команды cmp
Циклы Инструкция, организующая программный цикл имеет вид: loop [<условие повторения цикла>] <метка короткого перехода> Инструкция loop использует содержимое регистра СХ как счетчик повторений цикла. Команда loop уменьшает содержимое регистра СХ на 1 и передает управление по адресу, определяемому меткой перехода, если содержимое СХ ≠ 0, в противном случае выполняется следующая за LOOP инструкция. Подобно условным переходам инструкции этой группы могут осуществлять только короткие передачи управления, т.е. в пределах от -128 до +127. Добавление к инструкции loop <условие повторения цикла> позволяет ввести дополнительные логические условия на повторение цикла: · loope / loopz – повторять, пока ноль; · loopne / loopnz – повторять, пока не ноль. Проверка флага ZF осуществляется командой loop. Цикл повторяется, если содержимое СХ ≠ 0 и выполняется соответствующее условие, в противном случае выполняется следующая за loop инструкция.
Дата добавления: 2014-10-15; Просмотров: 727; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |