Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Lea si,addr

Code

Addr dw m1

Data

Mov si,2

Mov si,0

Code

Dw m2

Addr dw m1

Data

Data

Mov ax,bx

Code

Jmp bx

Lea bx,m1

Jmp m1

Mov ax, bx

Jmp short ptr m1

Jmp m1

Безусловные переходы

Mov ax,cx

На команду mov ax,cx можно передать управление как из данного сегмента команд, так и из других сегментов, принадлежащих другим модулям.

 

 

 

Синтаксис безусловного перехода:

 

jmp [модификатор]<адрес перехода>

Адрес перехода – это метка или адрес области памяти (имя регистра), где находится указатель перехода.

Безусловные переходы могут быть выполнены как внутри сегмента, так и между сегментами.

 

Внутрисегментные переходы.

 

Возможны варианты:

· - прямой короткий;

· - прямой;

· - косвенный.

 

Прямой короткий внутрисегментный переход разрешает передавать управление только в определенном диапазоне, когда расстояние от адреса команды jmp до адреса перехода не превышает -128 или +127 байт.

Длина машинной команды при прямом коротком внутрисегментном переходе - 2 байта. Первый байт – код операции, второй - вычисляется транслятором как разность между значением смещения команды, следующей за jmp изначением адреса перехода.

Если метка расположена до команды jmp, то транслятор формирует короткую команду перехода, которая вычитает из счетчика команд разность между адресами.

Если метка расположена ниже команды jmp, то транслятор не может сам определить, что переход короткий. В этом случае используется модификатор short ptr. Команда перехода прибавит к показанию счетчика команд разность между адресами.

 

Примеры:

Метка выше команды

m1:

………..

… 30-40 команд

……….

………..

Метка ниже команды

…….

…; 30-40 команд

……..

m1:

…….

 

 

Прямой внутрисегментный переход. Длина машинной команды - 3 байта, из которых 2 байта определяют диапазон адресов команд, на которые можно передать управление внутри сегмента. Это значит, команда позволяет передавать управление в пределах адресного пространства сегмента 64к.

Пример:

m1:

…..

Косвенный внутрисегментный переход. Адрес перехода должен быть записан либо в регистр, либо в области памяти.

Примеры

 

Адрес метки записан в регистре

m1:

…..

Адрес метки в области памяти

……….

jmp addr;косвенный переход на метку m1

m1:

…………

addr dw m1; запись адреса метки в память

В сегменте данных выделено слово, в которое записывается адрес метки.

 

При косвенном переходе имеется возможность модификации указателя, что позволяет команде передавать управление на разные метки.

Пример

……..

jmp addr [si]

………..

jmp addr [si]

……….

m1:

………..

m2:

……….

 

Рассмотрим пример, когда следует применять модификатор при ближнем переходе.

 

…………..

……..

jmp near ptr [si]

………..

m1:

 

В данном примере адрес ячейки памяти с адресом метки передается транслятору неявно и он не может определить, какой следует выполнить переход – внутренний или внешний.D ‘njv ckexft

 

 

<== предыдущая лекция | следующая лекция ==>
Команды передачи управления | Процедуры. Команды условного перехода и флаги
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 274; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.