Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_Arkhitektura_EVM.doc
Скачиваний:
9
Добавлен:
26.02.2016
Размер:
189.95 Кб
Скачать

Практическая работа №6 « Команды пересылки данных»

Цель работы: Отработка навыков применения команд пересылки данных при создании программ.

Материально-техническое оснащение:

ПК, текстовый редактор, служебные программы Tasm.exe, Tlink.exe, TD.exe.

Теория.

Команды пересылки данных можно подразделить на четыре подгруппы:

  • Команды общего назначения

  • Команды ввода-вывода

  • Команды пересылки адреса

  • Команды пересылки флагов

Мнемокод

Формат команды

Флаги

OF

DF

IF

TF

SF

ZF

AF

PF

CF

Команды общего назначения

Mov

Mov приемник,источник

-

-

-

-

-

-

-

-

-

Push

Push источник

-

-

-

-

-

-

-

-

-

Pop

Pop приемник

-

-

-

-

-

-

-

-

-

Xchg

Xchg приемник,источник

-

-

-

-

-

-

-

-

-

Xlat

Xlat табл_источник

-

-

-

-

-

-

-

-

-

Команды ввода-вывода

In

In аккумулятор,порт

-

-

-

-

-

-

-

-

-

Out

Out порт,аккумулятор

-

-

-

-

-

-

-

-

-

Команды пересылки адреса

Lea

Lea регистр16,память16

-

-

-

-

-

-

-

-

-

Lds

Lds регистр16,память32

-

-

-

-

-

-

-

-

-

Les

Les регистр16,память32

-

-

-

-

-

-

-

-

-

Команды пересылки флагов

Pushf

Pushf

-

-

-

-

-

-

-

-

-

Popf

Popf

+

+

+

+

+

+

+

+

+

Lahf

Lahf

-

-

-

-

-

-

-

-

-

Sahf

Sahf

-

-

-

-

+

+

+

+

+

- флаг не изменяется

+ флаг изменяется

Ход работы.

1. Задача 1. Создать программу в которой:

  • сохранить начальное значение регистра флагов в стеке

  • любой известной вам командой изменить значение одного или нескольких флагов

  • сохранить измененное значение регистра флагов в стеке

  • любой известной вам командой изменить значение одного или нескольких флагов

  • сохранить измененное значение регистра флагов в стеке

  • извлечь все значения регистра флагов из стека в другую область памяти в порядке их помещения в стек.

2. Получите исполняемый модуль.

  1. Проверьте правильность работы программы, запустив ее из отладчика в пошаговом режиме.

  2. В Turbo Debugger’е просмотрите:

  • сегмент стека через Dump памяти или окно CPU

  • регистр флагов

  • окно регистров

  • сегмент данных после извлечения флагов из стека.

  1. Задача 2. Из определенной в сегменте данных таблицы байтов создать в этом же сегменте новую таблицу, состоящую из 2, 4, 6 и 8 элементов исходной таблицы. Для решения задачи используйте команду Xlat.

  2. Получите исполняемый модуль.

  3. Проверьте правильность работы программы, запустив ее из отладчика в пошаговом режиме.

  4. В Turbo Debugger’е просмотрите сегмент данных для определения правильности работы программы.

  5. Задача 3. Создать программу, помещающую в стек 10 байт, извлеченных из портов 10, 20, 30, 40, 50.

  6. Получите исполняемый модуль.

  7. Проверьте правильность работы программы, запустив ее из отладчика в пошаговом режиме.

  8. В Turbo Debugger’е просмотрите сегмент стека для определения правильности работы программы.

  9. * Задача 4. В сегменте данных определить таблицу ASCII - кодов цифр от 0 до 9. Вывести на экран любые три цифры, используя эту таблицу.

  10. Получите исполняемый модуль.

  11. Проверьте правильность работы программы, запустив ее из отладчика.

Заключение.

  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 г.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]