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

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

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

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

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

Теория.

Программистам обычно приходится иметь дело с отдельными битами или группой битов. Для этого в языке Ассемблера существуют команды манипулирования битами. Их можно разделить на три группы:

  1. Логические команды

  2. Команды сдвига

  3. Команды циклического сдвига

Мнемокод команды

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

Флаги

OF

DF

IF

TF

SF

ZF

AF

PF

CF

Логические команды

And

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

0

-

-

-

+

+

?

+

0

Or

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

0

-

-

-

+

+

?

+

0

Xor

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

0

-

-

-

+

+

?

+

0

Not

Not приемник

-

-

-

-

-

-

-

-

-

Test

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

0

-

-

-

+

+

?

+

0

Команды сдвига

Sal/Shl

Sal приемник,счетчик

+

-

-

-

+

+

?

+

+

Shr

Shr приемник,счетчик

+

-

-

-

+

+

?

+

+

Sar

Sar приемник,счетчик

+

-

-

-

0

+

?

+

+

Команды циклического сдвига

Ror

Ror приемник,счетчик

+

-

-

-

-

-

-

-

+

Rol

Rol приемник,счетчик

+

-

-

-

-

-

-

-

+

Rcr

Rcr приемник,счетчик

+

-

-

-

-

-

-

-

+

Rcl

Rcl приемник,счетчик

+

-

-

-

-

-

-

-

+

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

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

  1. флаг обнуляется

? неопределенное значение

Ход работы.

  1. Задача 1. С помощью команд манипулирования битами уменьшите содержимое регистра AX в 32 раза.

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

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

  4. Задача 2. Создать программу, определяющую, чему равен пятый бит во введенном из порта 61h слове. Для решения этой задачи необходимо наложить маску на тестируемый бит. Результат выведите на экран.

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

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

  7. Измените порт и отработайте программу вновь

  8. Задача 3. Написать программу разложения четырехзначного числа, заданного преподавателем на единицы, десятки, сотни и тысячи.

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

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

  11. Задача 4. Создайте программу, извлекающую из порта 61h байт и определяющую сколько бит в нем установлены в 1, а сколько в 0. (*Результат выведите на экран).

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

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

  14. Измените порт и отработайте программу вновь

Заключение.

  1. Запишите созданные программы в свой каталог на диске и в тетрадь.

  2. Обобщите все возникшие в процессе создания программы ошибки.

Контрольные вопросы.

  1. Если регистр AX содержит значение 1234h, а регистр BX значение 4321h, то какое значение будет содержать регистр AX после выполнения каждой из следующих команд?

And ax,bx

Or ax,bx

Xor ax,bx

Not ax

Test ax,bx

  1. Предположим, что регистр AL содержит значение 0B4h. Какое значение будет содержать регистр AL и флаг CF (возможно и флаг OF) после выполнения каждой из следующих команд?

Sal al,1

Sar al,1

Shl al,1

Shr al,1

Rol al,1

Ror al,1

Rcl al,1

Rcr al,1

Литература.

1. Л. Скэнлон Персональные ЭВМ IBM PC XT. Программирование на языке ассемблера. М, Радио и связь, 1989 г.

2. В.Юров, С.Хорошенко. Ассемблер: учебный курс - СПб:ПитерКом,1999г.

3. Я. Белецкий Турбо Ассемблер версия 2.0, М, Машиностроение, 1994 г.

4. Под ред. И.Ю. Жукова Ассемблер в задачах защиты информации. М, КУДИЦ-ОБРАЗ, 2002 г.

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