Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lectures / 09

.pdf
Скачиваний:
43
Добавлен:
16.04.2013
Размер:
146.03 Кб
Скачать

Организация ЭВМ и систем

Лекция 9

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

Команды переходов

Безусловной передачи управления

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

вызов процедуры и возврат

вызов программ обраб.прерываний и возврата

Условной передачи управления

команды перехода по результату команды сравнения

команды перехода по состоянию определенного флага

команды перехода по содержимому регистра cx/ecx

Циклов

команда организации цикла со счетчиком ecx/cx

команда организации цикла со счетчиком ecx/cx и возможностью досрочного выхода из цикла по дополнительному условию

Определение метки

имя_метки :

имя_метки label тип_метки

 

near|far

m1: movAX, a

m1 label

near

 

mov

AX, a

m_far label

far

 

m_near: mov

AX, a

 

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

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

МежсегВнутрисегментный ментный

 

 

Способ задания

Дальность

 

целевого адреса

Короткий

 

Метка -

(-128..127 байт)

 

в команде

 

 

Ближний

 

Адрес - в reg

 

(от 128 до

 

 

64 К байт)

 

Адрес - в mem

 

 

Дальний

 

 

Косвенный Прямой

Значения модификатора в команде jmp

short ptr прямой короткий near ptr прямой ближний

Внутрисег-

ментный

far ptr прямой дальний word ptr косвенный ближний dword ptr косвенный дальний

Межсег-

ментный

Команда jmp: Примеры (I)

1 Прямой внутрисегментный

jmp m1

m1: ...

Если метка расположена не далее чем -128...+127 байтов, то переход - короткий, иначе - ближний

Команда jmp: Примеры (II)

2 Косвенный внутрисегментный

movbx, offset m1

jmp bx ; Адрес перехода - в bx

...

m1: ….

Команда jmp: Примеры (III)

3 Косвенный внутрисегментный

.data

addr_m1 dw m1

.code

...

jmp addr_m1 ; Адр.перехода - в addr_m1

...

m1: ….

Команда jmp: Примеры (IV)

4 Косвенный внутрисегментный

.data

addr dw m1 ; Адрес метки m1 dw m2 ; Адрес метки m2

.code

mov si,0 cycle:

jmp addr[si] ; Адрес перехода - в addr+(si)

m1: …. m2: ….

mov si,2 jmp cycle

Сегмент1

Сегмент2

Команда jmp: Примеры (V)

5 Прямые межсегментные

seg1 segment ….

jmp far ptr m2 ; far обязательно

…. ; или ключ tasm/m2 m1 label far

….

…. seg1 ends

seg2 segment ….

m2 label far

jmp m1 ; far необязательно

Соседние файлы в папке Lectures