КАТЕГОРИИ: Архитектура-(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) |
Команды переходов
Команды сдвигов Команды сдвигов используются для изменения содержимого регистров в соответствии с некоторым побитовым алгоритмом. SAR – арифметический сдвиг вправо SAL — арифметический сдвиг влево SHR — логический сдвиг вправо SHL — логический сдвиг влево ROR — циклический сдвиг вправо ROL — циклический сдвиг влево RCR — циклический сдвиг вправо через флаг переноса RCL — циклический сдвиг влево через флаг переноса Команды переходов предназначены для управления логикой работы программы, организации процедур, организации логические конструкций IF...THEN...ELSE, и т.д. Команда безусловного перехода (аналог goto): JMP метка В зависимости от типа перехода различают: • Короткий переход (short). Адрес перехода находится в пределах -128...+127 байт от команды JMP. В машинном коде адрес перехода определяется относительным смещением. Ближний переход (near). Адрес перехода находится в том же сегменте, что и команда JMP. В машинном коде адрес перехода определяется новым значением смещения (16 бит). Дальний переход (far). Адрес перехода находится в другом сегменте памяти, и требует переопределения регистра CS. В машинном коде для дальнего перехода задаётся пара сегмент:смещение. Команды условного перехода выполняют переход в зависимости от состояния флагов. Общий вид команды условного перехода: Jcc метка (JZ, JE, JNE, JC, JS, JNLE и т.д.) Команды условного перехода можно разделить на 2 группы — команды непосредственной проверки состояния флагов, и команды проверки результата сравнения. Для проверки результата сравнения используется несколько флагов, мнемоники команд отличаются в зависимости от вида операндов команды сравнения. Для беззнаковых используются JA, JB и подобные, для знаковых — JG, JL.
Команды условного перехода поддерживают только короткие переходы, и для выполнения переходов более чем на 127 байт требуется использовать конструкции цепного перехода. В процессорах Intel предусмотрена специальная команда для организации циклов: LOOP метка При выполнении этой команды процессор уменьшает содержимое регистра CX на 1, после чего выполняют переход типа short если регистр CX не равен нулю. Пример организации цикла: mov cx, 10 loop_start: add ax, cx loop loop_start Для организации процедур предусмотрена специальная пара команд — CALL и RET. CALL метка При выполнении команды CALL процессор сохраняет адрес следующей за CALL команды в стеке, и выполняет переход на указанную метку (или адрес). При выполнении команды RET процессор считывает из стека слово, и загружает его в регистр IP. Таким образом выполняется переход на следующую за CALL команду. Также предусмотрены команды работы со стековыми кадрами для облегчения передачи параметров в функции: ENTER и LEAVE,
Дата добавления: 2014-01-05; Просмотров: 472; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |