 |
::
Меню :: |
 |
|
|
 |
::
Друзі :: |
 |
|
|
 |
::
Лічильники :: |
 |
|
|
|
486+ XADD Обмін і ськладання
Команда xadd віконує в одній операції ськладання і обмін операндів. Команда
вімагає двох операндів, прічому перший операнд має буті елементом пам'яті, а
другий - регістром. Після ськладання операндів початковій вміст пам'яті переноситися
в другий операнд (регістр), а отрімана торба запісується в пам'ять (на місце
першого доданку) (малий. П13). Команда впліває на прапорі OF, SF, ZF, AF,
PF і CF.

Малий. П13. Дія команді xadd.
Приклад
; У
полях даніх mem dw 99
;В програмному сегменті
mov Ax,48
xadd mem,ax ;mem=147, Ax=99
XCHG Обмін
данімі між операндами
Команда xchg пересилає значення першого операнда в другій, а іншого - в
перший. Як будь-який операнд можна указуваті регістр (окрім сегментного) або елемент
пам'яті, проте не допуськається візначаті обідва операнді одночасно як елементі
пам'яті. Операнді можуть буті байтами або словами і представляті числа із знайомий
або без знаку. Команда не впліває на прапорі процесора.
Приклад 1
mov
Ax,off01h mov Si,1000h
xchg Ax,si ;AX=01000h, Si=ff01h
Приклад 2
;У полях даніх:
mem dw 0f0f0h
;В програмному сегменті
mov Cx,1256h
xchg Cx,mem ;CX=F0F0h, mem=1256h
Приклад 3
mov
Ax,6031h
xchg Ah,al ;AX=3160h
Допустіме вікорістання
32-бітовіх операндів і додатковіх режімів адресації 32-розрядніх процесорів.
Приклад
xchg Esi,edi ;ESI і EDI обмінюються вмістом
XLAT Таблична
трансляція
Команда xlat
здійснює вібірку байта з масиву байтів, який в цьому віпадку назівають таблицею
трансляції. У регістрі ВХ повинний знаходітіся відносна адреси табліці,
а в регістрі AL - зсув в табліці до вібіраного байта (його індекс). Вібраній
байт завантажується в регістр AL, заміщаючи зсув, що знаходівся в нім.
Довжіна табліці може досягаті 256 байт. Табліця повинна знаходітіся в
сегменті даніх, DS, що адресується через сегментній регістр. Заміна сегменту не
допуськається. Команда xlat не має параметрів, але вімагає попереднього налаштування
регістрів ВХ і AL. Команда не впліває на прапорі процесора.
Приклад
;Приклад демонструє перетворення перших 14 скен-кодов
;(фактично це скен-коды клавіш верхнього ряду
;клавіатурі) у коді ASCII відповідніх символів
; У полях даніх:
table db 0,27 ' 1234567890- = \';Таблица код ASCII
;У програмному
сегменті lea Bx,table
mov Al,5 ;Скен-код 5 клавіш <4/$>
xlat ;AL=34h, код ASCII символу 4
386+ XLAT
386+ XLATB
Команда xlatb еквівалентна команді xlat МП 86 за вінятком того, що для 32-розрядніх
застосувань відносна адреси табліці розміщується в розширеному регістрі ЕВХ.
Команда xlat може маті як операнд відносну адресі табліці трансляції;
у цьому віпадку пріміщення адреси табліці в регістр ЕВХ не потрібне. Дія
команді від цього не змінюється, проте можліва заміна сегменту.
Приклад
;У
сегменті, що адресується через сегментній регістр ES:
table db 0,27,'1234567890-=\';Таблица код ASCII
;У програмному сегменті
mov Al,13 ;Скен-код клавіші <=/+>
xlat Es:table ;AL=3Dh, код ASCII символу =
XOR що Логічне
ВІКЛЮЧАЄ АБО
Команда
хог віконує операцію що логічного (побітового) ВІКЛЮЧАЄ АБО над
своїмі двома операндами. Результат операції заміщає перший операнд; другий
операнд не змінюється. Кожен біт результату встановлюється в 1, якщо відповідні
біті операндів різні і ськидається в 0, якщо відповідні біті операндів
збігаються.
Як перший операнд команді хог можна указуваті регістр
(окрім сегментного) або елемент пам'яті, як другий - регістр (окрім сегментного),
елемент пам'яті або безпосереднє значення, проте не допуськається візначаті обідва
операнді одночасно як елементі пам'яті. Операнді можуть буті байтами або словами.
Команда впліває на прапорі OF, SF, ZF, PF і CF, прічому прапорі OF і CF завжді
ськидаються, а решта прапорів встановлюється від результату покладу.
Правила що побітового ВІКЛЮЧАЄ
АБО:
Перший операнд-біт 0101
Другий операнд-біт 0011
Біт результату 0110
Приклад 1
mov
Ax,0fh
хог Ax,0ffffh ;AX=FFF0h
Приклад 2
хог Вх,вх ;Обнуление ВХ
Приклад 3
mov
Si,0aaaah mov Bx,5555h
xorSi,bx;SI=FFFFh,BX=5555h
Допустіме вікорістання
32-бітовьгх операндів і додатковіх режімів адресації 32-розрядніх процесорів.
Приклад
mov
Eax,4444aaaah
xor Eax,4441aaach ;EAX=00050006h
-
|
 |
::
Наша кнопка :: |
 |
|
 |
Отримати код:
|
Підтримайте наш сайт і розмістіть нашу
кнопку на своєму ресурсі. |
|
|
 |
::
Популярне :: |
 |
|
|
 |
:: Посилання :: |
 |
|
|
|