Студопедия

КАТЕГОРИИ:


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

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

СПОСОБ 2. ПРОСТО ПРОЧЕСТЬ

СПОСОБ 1. ВЫЧИСЛИТЬ

ДАНО: 1. Текущее CSтекущее и IPтекущее, которое
сформировалось «само собой».
2. Дистанция перехода D (на сколько байтов
от «текущего» места в коде отстоит целевая метка).

НАЙТИ: адрес целевой метки CSновое:IPновое.

РЕШЕНИЕ:

1. CSновое = CSтекущее;
2. IPновое = IPтекущее + D;

ЗАГАДКА. Откуда же известна дистанция D?

ОТГАДКА. На фазе ТРАНСЛЯЦИИ tasm.exe вычисляет её и записывает ПРЯМО В МАШИННУЮ КОМАНДУ. (например E0 F4).

Это характерно для БЛИЖНИХ, ВНУТРИСЕГМЕНТНЫХ передач управления

 

ВОПРОС 1: Откуда читается пара CSновое:IPновое?

Ответ: Прямо из машинного кода команды. Например, C3 29 56 1A 8B

ВОПРОС 2. Но ведь при компиляции неизвестно, с какого адреса программа будет загружена в память! Какие значения tasm.exe пишет в код команды?

ОТВЕТ. Нулевые. Этим просто РЕЗЕРВИРУЕТСЯ МЕСТО в коде.

ПОЯСНЕНИЕ. Информация о расположении целевых меток относительно содержащих их сегментов tasm, а затем TLINK.EXE заносят в таблицу настройки EXE-префикса. При ЗАГРУЗКЕ ПРОГРАММЫ загрузчик command.com (ему ИЗВЕСТЕН адрес загрузки программы!) читает таблицу настройки, делает простые вычисления и ВПИСЫВАЕТ абсолютные адреса целевых меток ПРЯМО В МАШИННЫЙ КОД команд перехода (это и есть НАСТРОЙКА АДРЕСОВ при загрузке). При исполнении программы эти адреса просто ИЗВЛЕКАЮТСЯ ОТТУДА и используются для выполнения переходов.

Это характерно для ДАЛЬНИХ, МЕЖСЕГМЕНТНЫХ передач управления

 

Виды переходов

  ПРЯМЫЕ КОСВЕННЫЕ
БЛИЖНИЕ (внутри ОДНОГО сегмента кода) JMP METKA JNZ NEAR PTR ($+0F9h) JMP WORD PTR [BX] JZ WORD PTR [MemVar]
ДАЛЬНИЕ(между РАЗНЫМИ сегментами кода) JMP FAR PTR METKA; МЕТКА – в другом сегменте . DATA ADDR DD 00FE12h … … JMP DWORD PTR [ADDR]; ТУТ ТОЛЬКО ПАМЯТЬ!

 

Команды безусловной передачи
управления.

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

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

 

БЕЗУСЛОВНАЯ ПЕРЕДАЧА УПРАВЛЕНИЯ

 

<== предыдущая лекция | следующая лекция ==>
После такта 1 - чтения команды в кэш процессора ip указывает на начало следующей команды | Механизм выполнения
Поделиться с друзьями:


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


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



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




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