Теория.
Команды пересылки данных можно подразделить на четыре подгруппы: - Команды общего назначения - Команды ввода-вывода - Команды пересылки адреса - Команды пересылки флагов
- флаг не изменяется + флаг изменяется
Ход работы. 1. Задача 1. Создать программу в которой: - сохранить начальное значение регистра флагов в стеке - любой известной вам командой изменить значение одного или нескольких флагов - сохранить измененное значение регистра флагов в стеке - любой известной вам командой изменить значение одного или нескольких флагов - сохранить измененное значение регистра флагов в стеке - извлечь все значения регистра флагов из стека в другую область памяти в порядке их помещения в стек. 2. Получите исполняемый модуль. 3. Проверьте правильность работы программы, запустив ее из отладчика в пошаговом режиме. 4. В Turbo Debugger’е просмотрите: - сегмент стека через Dump памяти или окно CPU - регистр флагов - окно регистров - сегмент данных после извлечения флагов из стека. 5. Задача 2. Из определенной в сегменте данных таблицы байтов создать в этом же сегменте новую таблицу, состоящую из 2, 4, 6 и 8 элементов исходной таблицы. Для решения задачи используйте команду Xlat. 6. Получите исполняемый модуль. 7. Проверьте правильность работы программы, запустив ее из отладчика в пошаговом режиме. 8. В Turbo Debugger’е просмотрите сегмент данных для определения правильности работы программы. 9. Задача 3. Создать программу, помещающую в стек 10 байт, извлеченных из портов 10, 20, 30, 40, 50. 10. Получите исполняемый модуль. 11. Проверьте правильность работы программы, запустив ее из отладчика в пошаговом режиме. 12. В Turbo Debugger’е просмотрите сегмент стека для определения правильности работы программы. 13. * Задача 4. В сегменте данных определить таблицу ASCII - кодов цифр от 0 до 9. Вывести на экран любые три цифры, используя эту таблицу. 14. Получите исполняемый модуль. 15. Проверьте правильность работы программы, запустив ее из отладчика. Заключение. 1. Запишите созданные программы в свой каталог на диске и в тетрадь. 2. Обобщите все возникшие в процессе создания программы ошибки. Контрольные вопросы. 1. Перечислите подгруппы команд пересылки данных. 2. Каков формат команды LAHF и ее назначение? 3. Каков формат команды MOV и ее назначение? 4. Какие сочетания операндов невозможны для команды MOV? 5. Каков формат команды LEA и ее назначение? 6. Каков формат команды LES и ее назначение? 7. Каков формат команды XCHG и ее назначение? 8. Какие сочетания операндов невозможны для команды XCHG? 9. Каков формат команды POPF и ее назначение? Литература. 1. Л. Скэнлон Персональные ЭВМ IBM PC XT. Программирование на языке ассемблера. М, Радио и связь, 1989 г. 2. В.Юров, С.Хорошенко. Ассемблер: учебный курс - СПб:ПитерКом,1999г. 3. Я. Белецкий Турбо Ассемблер версия 2.0, М, Машиностроение, 1994 г. 4. Под ред. И.Ю. Жукова Ассемблер в задачах защиты информации. М, КУДИЦ-ОБРАЗ, 2002 г.
Практическая работа №7 «Арифметические команды» Цель работы:Отработка навыков применения арифметических команд при создании программ.
Материально-техническое оснащение: ПК, текстовый редактор, служебные программы Tasm.exe, Tlink.exe, TD.exe.
|