АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Условные переходы. Микропроцессор имеет 18 команд условного перехода

Читайте также:
  1. Безусловные переходы
  2. БЕЗУСЛОВНЫЕ РЕФЛЕКСЫ
  3. Классификация и условные обозначения полупроводниковых диодов.
  4. Количественные и качественные показатели n-го загородного коттеджа при массовой оценке (цифры условные)
  5. Контроль за усвоением знаний, умений и навыков по русскому языку: организационные формы, критерии орфографической и пунктуационной грамотности, условные обозначения ошибок.
  6. Методы и приёмы воспитания мировоззрения, положительный опыт поведения. Функции методов и условные их воздействия на личность спортсмена.
  7. Некоторые показатели работы народных судов по рассмотрению гражданских дел (цифры условные)
  8. От злокачественных новообразований в городах «Н» и «М». Косвенный метод (числа условные)
  9. По срокам начала и прекращения действий сделки делятся на бессрочные, срочные и условные.
  10. Подводные переходы трубопроводов через водные преграды
  11. Сокращенные условные, разделительные и условно-разделительные умозаключения
  12. Стандартизация коэффициентов смертности от злокачественных новообразований в городе Н. Обратный метод (числа условные)

Микропроцессор имеет 18 команд условного перехода. Эти команды позволяют проверить:

1) отношение между операндами со знаком («больше – меньше»);

2) отношение между операндами без знака («выше – ниже»);

3) состояния арифметических флагов ZF, SF, CF, OF, PF (но не AF).

Команды условного перехода имеют одинаковый синтаксис:

jcc метка_перехода

Как видно, мнемокод всех команд начинается с «j» – от слова jump (прыжок), ее – определяет конкретное условие, анализируемое командой.

Что касается операнда метка_перехода, то эта метка может находиться только в пределах текущего сегмента кода, межсегментная передача управления в условных переходах не допускается. В связи с этим отпадает вопрос о модификаторе, который присутствовал в синтаксисе команд безусловного перехода. В ранних моделях микропроцессора (i8086, i80186 и i80286) команды условного перехода могли осуществлять только короткие переходы – на расстояние от —128 до +127 байт от команды, следующей за командой условного перехода. Начиная с модели микропроцессора 80386, это ограничение снято, но, как видите, только в пределах текущего сегмента кода.

Для того чтобы принять решение о том, куда будет передано управление командой условного перехода, предварительно должно быть сформировано условие, на основании которого и будет приниматься решение о передаче управления.

Источниками такого условия могут быть:

1) любая команда, изменяющая состояние арифметических флагов;

2) команда сравнения стр, сравнивающая значения двух операндов;

3) состояние регистра есх/сх.

 

Команда сравнения cmp

Команда сравнения стр имеет интересный принцип работы. Он абсолютно такой же, как и у команды вычитания – sub операнде, операнд_2.

Команда стр так же, как и команда sub, выполняет вычитание операндов и устанавливает флаги. Единственное, чего она не делает – это запись результата вычитания на место первого операнда.

Синтаксис команды стр – стр операнд_1, операнд_2 (compare) – сравнивает два операнда и по результатам сравнения устанавливает флаги.

Флаги, устанавливаемые командой стр, можно анализировать специальными командами условного перехода. Прежде чем мы их рассмотрим, уделим немного внимания мнемонике этих команд условного перехода (табл. 16). Понимание обозначений при формировании названия команд условного перехода (элемент в названии команды jcc, обозначенный нами ее) облегчит их запоминание и дальнейшее практическое использование.



Таблица 16. Значение аббревиатур в названии команды jcc

Таблица 17. Перечень команд условного перехода для команды стр операнд_1, операнд_2

He удивляйтесь тому обстоятельству, что одинаковым значениям флагов соответствует несколько разных мнемокодов команд условного перехода (они отделены друг от друга косой чертой в табл. 17). Разница в названии обусловлена желанием разработчиков микропроцессора облегчить использование команд условного перехода в сочетании с определенными группами команд. Поэтому разные названия отражают скорее различную функциональную направленность. Тем не менее то, что эти команды реагируют на одни и те же флаги, делает их абсолютно эквивалентными и равноправными в программе. Поэтому в таблице 17 они сгруппированы не по названиям, а по значениям флагов (условиям), на которые они реагируют.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |


При использовании материала, поставите ссылку на Студалл.Орг (0.005 сек.)