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.


 

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

46076. Методика логопедического воздействия при функциональной дислалии (В 65) 25 KB
  Основной целью логопедического воздействия при дислалии является формирование умений и навыков правильного воспроизведения звуков речи. Ребенок должен научиться: узнавать звуки речи отличать один от другого по акустическим признакам; отличать нормированное произнесение звука от ненормированного; осуществлять слуховой контроль и оценивать качество произносимого звука; принимать необходимые артикуляционные позиции обеспечивающие нормированный звук; варьировать артикуляционные уклады звуков в зависимости от их сочетаемости с другими в...
46077. Ринолалия. Причины, механизмы, основные формы нарушения 29 KB
  Такое нарушения резонанса происходит в результате неправильного направления голосовой или дыхательной струи вследствие механического дефекта носовой полости носоглотки мягкого и твердого неба или расстройства функции мягкого неба. Назальный носовой оттенок речи связан с наличием широкого сообщения между ротовой и носовой полостью и недостаточным смыканием носоглоточного прохода изза укороченного мягкого неба. Расстройство звукообразования зависит : от нарушения деятельности мышечного аппарата мягкого неба глотки и языка; от...
46078. Система коррекционного воздействия при ринолалии в дооперационный период 29.5 KB
  Коррекция гласных предусматривает продвижение языка к нижним зубам и произнесение их на диафрагмальном выдохе в грудном регистре. Начинают с протяжного произнесения гласных ааа эээ на мягком выдохе в грудном регистре. Постановка гласных начинается с а и э которые к этому времени достаточно отработаны артикуляционными упражнениями. Это обусловлено на изменении силы необходимой для удержания сегментов неба в горизонтальном положении и на возрастании объема глоточной полости при артикуляции гласных из которых у и обладают наиболее...
46079. Система коррекционного воздействия при ринолалии в послеоперационный период 28.5 KB
  Постановка гласных звуков. Занятия снова начинают с проговаривания гласных звуков а и э. Как только небо станет удерживаться в подъеме 1 2 секунды следует приступать к нормализации резонанса гласных звуков. Ребенок упражняется в начале в проговаривании изолированных гласных звуков а затем в сочетаниях по 23 звука.
46080. Характеристика различных аспектов изучения дизартрии 14 KB
  Характеристика различных аспектов изучения дизартрии. Основные проявления дизартрии состоят в расстройстве артикуляции звуков нарушениях голосообразования а также в изменениях темпа речи ритма и интонации. Причинами дизартрии являются органические поражения центральной нервной системы в результате воздействия различных неблагоприятных факторов на развивающийся мозг ребенка во внутриутробном и раннем периодах развития. Клиническая картина дизартрии впервые была описана более ста лет назад у взрослых в рамках псевдобульбарного...
46081. Дизартрия. Этиология, механизмы нарушения, симптоматика 19.5 KB
  Этиология дизартрии определяется органическим поражением центральной и периферической нервной системы под влиянием различных неблагоприятных внешних экзогенных факторов воздействующих во внутриутробном периоде развития в момент родов и после рождения. Основными признаками дизартрии являются дефекты звукопроизношения и голоса сочетающиеся с нарушениями речевой моторики и речевого дыхания. При дизартрии в отличие от дислалии может нарушаться произношение как согласных так и гласных звуков. В зависимости от нарушений все дефекты...
46082. Классификация дизартрии, характеристика основных форм и степеней нарушения 35 KB
  У детей с описываемой формой дизартрии наблюдается атрофия мышц языка и глотки снижается также тонус мышц атония. Иногда при подкорковой дизартрии у детей наблюдается снижение слуха осложняющее речевой дефект. Наблюдается инертность иннервационного импульса. Наблюдается при поражении мозжечка и его связей с другими отделами ЦНС.
46083. Характеристика основных направлений коррекционной работы при различных формах дизартрии 29 KB
  Развитие артикуляционной моторики речевого дыхания постановка и закрепление звуков в речи. Важная задача – развитие слухового восприятия и звукового анализа а также восприятия и воспроизведения ритма. Основная цель: развитие речевого общения и звукового анализа. Проводится работа по коррекции артикуляционных нарушений: при спастичности – расслабление мышц артикуляционного аппарата выработка контроля над положением рта развитие артикуляционных движений развитие голоса; коррекция речевого дыхания; развитие ощущений артикуляционных движений...
46084. Этиология и классификация нарушений голоса 27.5 KB
  Этиология и классификация нарушений голоса. Проблема нарушений голоса у детей остается актуальной так как голосовые перегрузки связанные с коллективным воспитанием ребенка в д с участие в разнообразных вокальных и хоровых коллективах не имеющих опытных педагогов экологические и социальные проблемы приводят к тому что в фониатрической и логопедической практике нередко приходится сталкиваться с детьми страдающими заболеваниями голосового аппарата. Нарушения голоса – это отсутствие или расстройство фонации вследствие патологических...