Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Приклади використання бітових команд




and ax, 0x0002; перевірка біта №1

or ax, 0x0200; установка біта №9

xor ax,0x4000; обнуління біта №14

not ax; логічне not над умістом регістра ax

shl al,1; зсув регістра вліво на один біт

shl byte [bx],1; зсув пам'яті вліво на один біт

shl ax, cl; зсув регістра вліво на кількість з cl

shl word [bx], cl; зсув пам'яті вліво на кількість з cl

shld ax, bx,1; зсув регістра вліво на один біт

shld [di], bx,1; зсув пам'яті вліво на один біт

shld ax, bx, cl; зсув регістра вліво на кількість з cl

shld [di], bx, cl; зсув пам'яті вліво на кількість з cl

bt ax, 15; тестує біт у регістрі

bts word [bx],15; тестує і ставить біт у пам'яті

btr ax, cx; тестує і скидає біт у регістрі

btc word [bx], cx; тестує і доповнює біт у пам'яті

bsf ax, bx; сканування регістра по зростанню

bsr ax,[si]; сканування пам'яті в зворотному порядку

bswap edx; перестановка байтів у регістрі

Завдання на лабораторну роботу

При рішенні прикладів і завдань необхідно:

а) скласти алгоритм рішення задачі

б) напроти відповідних елементів алгоритму записати команди асемблера

в) скласти програму (format pe) і відкомпілювати, при необхідності виправити синтаксичні помилки.

г) перевірити виконання програми в дебагері OllyDbg, при наявності помилок виправити текст програми і повторити дії по п. г)

д) змінити заголовок програми для компіляції модуля (format coff), додати відповідні зміни для одержання працездатного модуля для стикування з програмою на C++ (див. лабораторну роботу №2).

е) створити консольний проект на С++, додати отриманий модуль, скомпілювати додаток (див. лабораторну роботу №2).

ж) перевірити правильність роботи програми на різних наборах вхідних даних.

з) оформити звіт і зробити осмислені висновки по суті розв'язуваної задачі.

Варіанти завдань.

1) Скласти програму для дослідження роботи логічних команд. Проаналізувати поводження прапорів.

2) Скласти програму для дослідження команд зсувів. Проаналізувати поводження прапорів.

а) скласти програму для дослідження простих зсувів.

б) скласти програму для дослідження циклічних зсувів.

3) Скласти програму, що аналізує поводження визначеного біта (декількох біт) у цілому числі. Проаналізувати поводження прапорів.

а) використовувати маску відповідно до таблиці 3.

б) використовувати команди роботи з бітами.

в) перевірити роботу команди bswap.

Таблиця 3 - Варіанти завдань.

Варіант а b с Команди зсувів Швидка арифметика bswap
  еах meml есх eax 1,2; 8 *2; /32 eax
  mem2 edx meml edx 1,2; 7 *4; /16 edx
  meml ebx еах ecx 1,2; 6 *8; /8 ecx
  meml mem2 edx ebx 1,2; 5 *16; /4 ebx
  есх edx meml edi 1,2; 4 *32; /2 edi
  маска для перевірки групи бітів маска одного біта
  біти (b): 1,3,7,8,10,20,24,28 біт (a): 3; 25
  біти (c): 3,5,9,15,17,21,28,31 біт (b): 5; 27
  біти (a): 2,6,8,13,19,22,29,30 біт (c): 7; 29
  біти (b): 0,6,7,11,18,25,27,31 біт (c): 9; 31
  біти (c): 1,4,10,14,22,26,27,31 біт (a): 11;23
Примітка: для варіантів 1-5: a, b – операнди, c – результат; для варіантів 6-10: a, c – операнди, b – результат; для варіантів 11-15: b, c – операнди, a – результат;    

Критерії оцінювання.

На 3 бали:

Вміти дати відповіді на питання для самоконтролю та самоперевірки. Виконати завдання 1 та 2а.

На 4 бали:

Виконати завдання 1, 2, 3б.

На 5 балів:

Виконати завдання 1-3 у повному обсязі

Питання для самоперевірки

Навести таблиці істинності для основних булевих функцій

У чому особливості різних команд зсуву (чи змінюється флаг CF)?

Який принцип ділення та множення на ступені двійки за допомогою команд зсуву?

Як сформувати маску, для перевірки декількох розрядів двійкового числа?

Яким чином інтерпретувати результати маскування одразу кількох розрядів?

Література

1. Голуб Н. Г. Искусство программирования на Ассемблере. Лекции и упражнения.- СПб.: ООО”ДиаСофтЮП”, 2002. – 656 с.

2. Магда. Ю. С. M12 Ассемблер для процессоров Intel Pentium. – СПб.: Питер, 2006. – 410с.

3. Ирвин Кип. Язык ассемблера для процессоров Intel, 4-е издание.: Пер с англ. – М.: Издательский дом ”Вильямс”, 2005. – 912с.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...