Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Логічні операції




Турбо Асемблер підтримує повний набір інструкцій для виконання логічних операцій, включно інструкцій для виконання логічних операцій, включно інструкції AND (і), OR (чи), XOR (виключне чи) та NOT (ні). Ці інструкції можуть виявитися дуже корисними при роботі з окремими бітами слова чи байта, а також для виконування операцій булевої алгебри.

Результати виконання логічних операцій показані у таблиці. Логічна інструкція виконує порозрядні операції над бітами вихідних операндів. Наприклад, інструкція:

 

and ax,dx

 

виконує логічну операцію AND з бітом 0 регістра AX ті бітом 0 регістра DX, потім ту ж саму операцію з бітами 1, 2 і т.п. до біта 15.

 

Виконання логічних інструкцій процесора 8086 AND, OR та XOR наведено в табл. 3.1

 

Таблиця 3.1 – Виконання логічних інструкцій процесора 8086 AND, OR та XOR

Вихідний біт А Вихідний біт В A AND B A OR B A XOR B
         
         
         
         

 

Інструкція AND комбінує два операнди у відповідності з правилами, які показані у таблиці, встановлює кожний біт результату (операнда-приймача) в 1 тільки у тому випадку, якщо обидва біта операнда-джерела дорівнюють 1. Інструкція AND дозволяє нам виділити окремий біт чи примусово встановити його у значення 0. Наприклад, інструкції:

 

mov dx,3dah

in al,dx

and al,1

 

виділяють біт 0 байта стану кольорового графічного адаптеру (CGA). Ці інструкції залишають регістр AL встановлений у значення 1, якщо відеопам’ять адаптера CGA можна змінити, не викликаючи перешкод на екрані (“сніг”), та встановлює його у нульове значення у противному разі.

Інструкція OR теж комбінує два операнди у відповідності з правилами, які приведені у таблиці, встановлює кожний біт операнда-приймача у значення 1, якщо будь-який з відповідних бітів операнда-джерела дорівнює 1. Інструкція OR дозволяє вам примусово встановити окремі біти у значення 1. Наприклад, інструкції:

mov ax,40h

mov ds,ax

mov bx,10h

or WORD PTR [bx],0030h

 

встановлює біти 5 та 4 слова флагів апаратури базової системи вводу-виводу BIOS у значення 1. При цьому BIOS буде підтримувати монохромний дисплейний адаптер.

Інструкція XOR також комбінує два операнди у відповідності з правилами, які приведені у таблиці, встановлюючи кожний біт операнда-приймача у значення 1, тільки у тому випадку якщо один з відповідних бітів операнда-джерела дорівнює 0, та у значення 1 у протилежному випадку. Інструкція XOR дозволяє нам “перемикати” значення окремих бітів у байті. Наприклад, інструкції:

 

mov al,01010101b

xor al,11110000b

 

встановлюють регістр AL у значення 10100100b чи A5h. Коли для регістра AL виконується операція XOR зі значенням 11110000b (0F0h), біти зі значенням 0 залишають відповідні біти AL незмінними.

До речі інструкція XOR дає зручний спосіб обнуління змісту регістру. Наприклад, наступна інструкція встановлює зміст регістра AX у значення 0:

 

xor ax,ax

 

Нарешті, інструкція NOT просто змінює значення кожного біту операнда на протилежне (як якщо б над початковим операндом була виконана операція XOR зі значенням 0FFh). Наприклад:

 

mov bl,10110001b

not bl; переключити BL у 01001110b

xor bl,0ffh; переключити BL зворотно у значення

; 10110001b




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 432; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.054 сек.