КАТЕГОРИИ: Архитектура-(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. Адрес целевой метки вычисляется так: 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; Просмотров: 308; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |