Студопедия

КАТЕГОРИИ:


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

При выполнении адрес целевой метки просто читается из машинного кода команды




При АБСОЛЮТНОЙ АДРЕСАЦИИ в машинный формат команды передачи управления в качестве ее операндов включаются ПОЛЯ ДЛЯ ХРАНЕНИЯ нового IP и нового CS целевой команды перехода.

При ОТНОСИТЕЛЬНОЙ АДРЕСАЦИИ в машинный формат команды передачи управления в качестве ее операнда включается ДИСТАНЦИЯ перехода (число байт, на которое нужно сдвинуться в сегменте кода).

При передаче управления используется как относительная, так и абсолютная адресация целевой метки (команды).

Пример с применением команды JCXZ

0000.data

0000 1E max db 30

0001?? len db?

0002 1F*(0D) buf db 31 dup(0dh)

0021 00 NumA db 0

0022.code

.... … …....

0000 B8 0000s mov AX, @data

0003 8E D8 mov DS, AX

0005 B4 0A mov ah, 0Ah; буферизованный ввод

0007 BA 0000r lea DX, max

000A CD 21 int 21h

000C 8A 0E 0001r mov cl,len

0010 B5 00 mov ch, 0

12 BB 0001r lea BX, len

0015 cycle:

0015 43 inc BX

0016 80 3F E0 cmp byte ptr [BX], "а"

0019 75 04 jne next

001B FE 06 0021r inc NumA

001F next:

001F E2 F4 LOOP cycle

00 21

Повторить цикл, «пока равно» LOOPE (LOOPZ)

1. CX:= CX - 1;

2. Если (СХ > 0) AND (ZF=1), то передать управление на метку.

Если же (СХ=0) OR (ZF=0) то перейти к
СледующейКоманде.

 

Повторить цикл, «пока НЕравно» LOOPNE (LOOPNZ)

1. CX:= CX - 1;

2. Если (СХ > 0) AND (ZF=0), то передать управление на метку.

Если же (СХ=0) OR (ZF=1) то перейти к
СледующейКоманде.

 

ИТОГИ

1. Все команды передачи управления меняют ЕСТЕСТВЕННЫЙ ПОРЯДОК исполнения команд (в порядке их последовательного размещения в сегменте кода)
на порядок, НУЖНЫЙ ПРОГРАММИСТУ.

2. Для этого все они ЗАМЕНЯЮТ в регистрах (CS):IP значения, которые получаются автоматически, НА АДРЕС КОМАНДЫ, которая должна выполняться СЛЕДУЮЩЕЙ по ЛОГИКЕ работы программы, а не просто потому, что она следующая по записи в коде.

3. Такая замена и составляет суть того, что называют ПЕРЕДАЧЕЙ УПРАВЛЕНИЯ на нужную команду.

6. Адрес целевой метки вычисляется так:
-- CS остается без изменения;
-- Новое IP:= Текущее IP + ДИСТАНЦИЯ.

7. Это – ВНУТРИСЕГМЕНТНЫЙ (ближний) переход.

8. Машинный код команды перехода ИНВАРИАНТЕН к адресу начальной загрузки программы и перед началом работы программы никакой НАСТРОЙКИ НЕ ТРЕБУЕТ.

10. Машинный код команды перехода перед началом работы НАСТРАИВАЕТСЯ ПРОГРАММНЫМ ЗАГРУЗЧИКОМ (command.com). Смысл настройки в том, что загрузчик ВЫЧИСЛЯЕТ ЦЕЛЕВЫЕ АДРЕС А меток дальних переходов и ВПИСЫВАЕТ ИХ в машинные коды команд.

12. Это – МЕЖСЕГМЕНТНЫЙ (дальний) переход.

13. Мы видели, что переходы бывают безусловные и условные.
Запомним, что у процессора результат проверки условия – это УСТАНОВКА ФЛАГОВ.

14. По комбинации флагов и делается вывод – выполнено ли проверяемое условие или нет.
Причем ЭТОТ «ВЫВОД ДЕЛАЕТ» команда УСЛОВНОГО ПЕРЕХОДА.

 

 


Раздел 11. КОМАНДЫ ОБРАБОТКИ ЦЕПОЧЕК

«Цепочки» здесь – это линейные массивы либо байтов, либо слов, либо двойных слов.

ПЛАН РАЗДЕЛА

1. Назначение цепочечных команд и организация их исполнения.

2. Команды ПЕРЕСЫЛКИ цепочек MOVS.

3. Команды СРАВНЕНИЯ цепочек CMPS.

4. Команды СКАНИРОВАНИЯ цепочек SCAS.

5. ЗАГРУЗКА элемента цепочки в аккумулятор. (LODS)

6. СОХРАНЕНИЕ аккумулятора в элементе цепочки (STOS).

7. Команды ввода-вывода через порт (INS и OUTS).

 

Назначение ЦЕПОЧЕЧНЫХ КОМАНД

Цепочечные команды позволяют проводить действия над блоками памяти, представляющими собой последовательности элементов следующего размера:




Поделиться с друзьями:


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


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



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




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