4892

Команды передачи управления

Доклад

Информатика, кибернетика и программирование

Команды передачи управления Порядок выполнения команд в процессорах 80х86 и 80х88 определяется содержимым регистра сегмента кода (CS) и счетчика команд (IP). Регистр CS содержит базовый адрес текущего сегмента кода, т.е. 64-килобайтного фрагмента па...

Русский

2012-11-28

54.5 KB

12 чел.

Команды передачи управления

Порядок выполнения команд в процессорах 80х86 и 80х88 определяется содержимым регистра сегмента кода (CS) и счетчика команд (IP). Регистр CS содержит базовый адрес текущего сегмента кода, т.е. 64-килобайтного фрагмента памяти, из которого в данный момент извлекаются коды команд. Содержимое счетчика команд IP используется как смещение относительно начала текущего сегмента кода. Содержимое CS и IP однозначно определяет то место в памяти, из которого будет извлечена следующая команда. Команда передачи управления (команды переходов) изменяют содержимое регистров CS и IP. Всего имеется три группы команд передачи управления: команды безусловного перехода, команды условного перехода и команды управления циклами.

Команды безусловного перехода

JMP (цель)

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

При внутрисегментной непосредственной команде JMP к счетчику команд IP добавляется смещение, указанное в команде. Если компилятор обнаруживает, что целевой адрес находится на расстоянии меньшем, чем 127 байтов от команды, он автоматически генерирует двухбайтовый вариант команды, называемый коротким переходом (SHORT JMP), в противном случае генерируется ближний переход (NEAR JMP), в котором диапазон перехода составляет плюс-минус 32К.

При внутрисегментной косвенной команде JMP смещение, добавляемое к регистру IP, может быть указано в памяти или в 16-разрядном регистре. В последнем случае значение смещение берется из регистра, указанного в команде.

При межсегментной непосредственной команде JMP значения IP и CS заменяются значениями, указанными в команде.

При межсегментной косвенной команде JMP значения IP и CS могут быть заменены только значениями расположенными в памяти. При этом первое слово двойного слова содержит смещение, второе слово – сегмент.

Команды условного перехода 

Команды условного перехода выполняют или не выполняют передачу управления на указанный адрес в зависимости от состояния флагов процессора не момент выполнения команды. Эти команды (см. таблицу ниже) проверяют различные комбинации флагов и условий. Если условие истинно, осуществляется передача управления на указанный адрес. Если условие неверно, управление передается команде, следующей за командой условного перехода. Все команды условного перехода являются короткими (SHORT), так что диапазон переходов в этих командах лежит в диапазоне от -128 до +127 байтов. При этом следует иметь в виду, что команде JMP 00h соответствует переход на следующую команду.

Таблица 8 Команды условного перехода

Мнемон.

Проверяемое условие

Переход, если ...

JA/JNBE

(CF or ZF) = 0

выше/не ниже или равно

JAE/JNB

CF = 0

выше или равно/не ниже

JB/JNAE

CF = 1

ниже/не выше или равно

JBE/JNA

(CF or ZF) = 1

ниже или равно/не выше

JC

CF  = 1

перенос

JE/JZ

ZF = 1

равно/нуль

JG/JNLE

[(SF xor OF) or ZF] = 0

больше/не меньше или равно

JGE/JNL

(SF xor OF) = 0

больше или равно/не меньше

JL/JNGE

(SF xor OF) = 1

меньше/не больше или равно

JLE/JNG

[(SF xor OF) or ZF] = 1

меньше или равно/не больше

JNC

CF = 0

нет переноса

JNE/JNZ

ZF = 0

не равно/не нуль

JNO

OF = 0

не переполнение

JNP/JPO

PF = 0

нечетно

JNS

SF = 0

не знак

JO

OF = 1

переполнение

JP/JPE

PF = 1

четно

JS

SF = 1

знак

JCXZ

CX=0

CX=0

Пример 1.

cmp AX,0 ;АХ=0?

je equal ;Если да, перейти на метку equal

ja above ;Переход на метку above,

  ;если содержимое АХ как число

;без знака превышает 0

Пример 2.

test AX,1

jne label1 ;Переход, если бит 0 в АХ ;установлен

Пример 3.

test DX,0FFFFh

jz label2  ;Переход, если DX=0

Циклы

LOOP

Циклическое выполнение, пока содержимое СХ не равно нулю. Команда LOOP выполняет декремент содержимого регистра СХ и если оно не равно 0 осуществляет переход на указанную метку вперед или назад в том же программном сегменте в диапазоне –128…+127 байт. Содержимое регистра СХ рассматривается как целое число без знака, поэтому максимальное число повторений последовательности команд в цикле составляет 65536.

Пример 1. Заполнение массива нулями

В сегменте данных:

mas DW 4096 dup(?)  ;Массив из 4096 слов

В сегменте кодов:

mov  BX, offset mas  

mov CX, 4096

mov AX,0

nulmas:

mov [BX], AX  

inc BX

inc BX

loop nulmas

Пример 2.

xor CX,CX

begin:…

loop begin

При необходимости организовать вложенные циклы удобно воспользоваться стеком для сохранения внешнего цикла на время выполнения внутреннего. В следующем примере организуется программная задержка длительностью несколько секунд

Пример.

mov CX, 10 ;Внешний счетчик повторений

outer:

push CX  ;Сохраним его в стеке

mov CX,0 ;64К шагов во внутреннем цикле

inner:

loop inner ;Тело внутреннего цикла

pop CX  ;Восстановим СХ перед командой loop

loop outer

LOOPE/LOOPZ

Команда выполняет декремент содержимого регистра СХ и если оно не равно 0 и флаг ZF установлен осуществляет переход на указанную метку вперед или назад в том же программном сегменте в диапазоне –128…+127 байт. Содержимое регистра СХ рассматривается как целое число без знака, поэтому максимальное число повторений последовательности команд в цикле составляет 65536.

LOOPNE/LOOPNZ

Команда выполняет декремент содержимого регистра СХ и если оно не равно 0 и флаг ZF сброшен осуществляет переход на указанную метку вперед или назад в том же программном сегменте в диапазоне –128…+127 байт. Содержимое регистра СХ рассматривается как целое число без знака, поэтому максимальное число повторений последовательности команд в цикле составляет 65536.


 

А также другие работы, которые могут Вас заинтересовать

41492. Системы управления движением поездов 205.5 KB
  ДЦ способствует повышению безопасности движения позволяет обеспечить максимальное использование пропускной способности участков дает возможность четко организовать движение поездов по графику. Создаются системы слежения за движением поездов с контролем и отображением их номеров. При этом решаются и другие задачи: регистрация графика исполненного движения автоматическая установка поездных маршрутов оповещение пассажиров о подходе поездов контроль выполнения графика движения на более высоких уровнях управления автоматическое задание...
41493. ТЕХНОЛОГИЯ И НОРМИРОВАНИЕ МАНЕВРОВОЙ РАБОТЫ 293 KB
  Маневрами называются все передвижения подвижного состава групп или отдельных вагонов а также одиночных локомотивов по станционным путям для выполнения различных видов обработки поездов и вагонов обеспечиние погрузки выгрузки и др. Рациональная организация маневров во многом определяет успешную работу станций уровень их перерабатывающей способности и выполнение основного качественного показателя затраты времени на обработку вагонов. Маневры классифицируются по следующим признакам: 1 по характеру; 2 по назначению; 3 по способу...
41494. Технология работы промежуточных станций 180 KB
  Опорные промежуточные станции их эффективность. Для четкой организации работы на промежуточных станциях составляются технологические карты операций которые включают: нормы времени на приготовление поездных маршрутов и станционные интервалы; графики работы со сборными поездами и нормы времени на операции со сборнораздаточными вагонами; нормы времени на маневровые передвижения в пределах станции с пути на путь с разным количеством вагонов и одного локомотива; нормы простоя вагонов под грузовыми операциями и графики обработки вагонов на...
41495. ТЕХНОЛОГИЯ РАБОТЫ СОРТИРОВОЧНОЙ ГОРКИ 215.5 KB
  Перерабатывающая способность горки и пути её повышения. Технология совмещения роспуска составов и формирования поездов с горки. Сортировочная горка состоит из трех основных элементов: надвижной части вершины горки и спускной части.
41496. ТЕХНОЛОГИЯ РАБОТЫ СОРТИРОВОЧНЫХ СТАНЦИЙ. ХАРАКТЕРИСТИКА СОРТИРОВОЧНЫХ СТАНЦИЙ 123.5 KB
  Оперативное управление работой станции 1. Назначение размещение и техническая оснащенность Сортировочные станции предназначаются для массовой переработки вагонов расформирования и формирования поездов причем в первую очередь сквозных т. Кроме того сортировочные станции могут пропускать транзитные поезда с которыми выполняются следующие операции: смена локомотивных бригад; смена локомотивов; технический и коммерческий осмотр составов; ремонт и экипировка локомотивов вагонов; снабжение водой поездов с живностью экипировка...
41497. ТЕХНОЛОГИЯ РАБОТЫ УЧАСТКОВОЙ СТАНЦИИ 248.5 KB
  Основная работа участковых станций заключается в обработке транзитных поездов кроме того на этих станциях выполняются еще следующие основные операции: смена локомотивов и локомотивных бригад; расформированиеформирование составов участковых и сборных поездов иногда сквозных; маневры по отцепке и прицепке групп вагонов к транзитным поездам с частичной переработкой грузовые и пассажирские операции. Число сортировочных путей определяется числом назначений сортировки суточным количеством перерабатываемых вагонов технологическим процессом...
41498. ОПЕРАТИВНОЕ ПЛАНИРОВАНИЕ, УПРАВЛЕНИЕ И РУКОВОДСТВО РАБОТОЙ СТАНЦИИ 232 KB
  Оперативное планирование работы станции. Автоматизация текущего планирования работы станции АСТП. Оперативное руководство работой станции 1. План работы смены вступающий на дежурного во второй половине суток, оставляют с учетом итогов работы первой смены и обеспечения выполнения всего суточного плана.
41499. ОРГАНИЗАЦИЯ РАБОТЫ СТАНЦИЙ. ОБЩИЕ СВЕДЕНИЯ ОБ УСТРОЙСТВЕ И РАБОТЕ СТАНЦИЙ 162.5 KB
  К раздельным пунктам относятся: станции разъезды обгонные пункты путевые посты а при автоблокировке и проходные светофоры. Коммерческие операции: прием взвешивание хранение и выдача грузов; оформление перевозочных документов взимание провозных платежей; пломбирование вагонов; обеспечение сохранности грузов находящихся на станции; осмотр прибывающих и отправляющих составов в коммерческом отношении. В зависимости от основного назначения и характера работы станции делятся на промежуточные участковые сортировочные грузовые и...
41500. ОСНОВЫ УПРАВЛЕНИЯ ЭКСПЛУАТАЦИОННОЙ РАБОТОЙ ЖЕЛЕЗНЫХ ДОРОГ 123 KB
  Основные принципы организации движения. Железнодорожный транспорт занимает ведущее место среди всех видов транспорта автомобильный воздушный речной морской трубопроводный это определяется следующими положениями: 1 железнодорожный транспорт работает непрерывно в течении года и суток осуществляя массовую перевозку народнохозяйственных грузов пассажиров; 2железнодорожный транспорт участвует в различных фазах производственного процесса: в начальной если перевозят сырьё исходные материалы; в средней если перевозят комплектующее...