lign="justify"> xor 0=1 0 xor 1=1
Наприклад:
(AL)=1011 0011, маска=000 01 111
xor AL, 0Fh; (AL)=1011 1100
Команда заперечення:
<ім'я> not OP; <Коментар>
результ виконання команди є інверсія значення операнда. Наприклад,
(AL)=0000 0000, not AL; (AL)=1111 1111
Значення прапорів не змінюються.
Прімери.
1) xor AX, AX; обнуляє регістр AX швидше, ніж команди mov і sub
2) Xor AX, BX; міняє місцями значення AX і BX
xor BX, AX; швидше, ніж команда
xor AX, BX; xchg AX, BX
3) Визначити кількість заборжників в групі з 25 студентів. Інформація про студентів міститься в масиві байтів X DB 25 DUP (?), Причому в молодших 4 бітах кожного байта містяться оцінки, тобто 1 - здав іспит, 0 - «хвіст». У DL збережемо кількість заборжників.
-----------------------------
mov DL, 0SI, 0; i=0 CX, 25; кількість повторень циклу
nz: mov AL, X [SI]
and AL, 0Fh; Обнуляємо старшу частину байта
xor AL, 0Fh;
jz m; ZF=1, хвостів немає, передаємо на повторення циклу
inc DL; збільшуємо кількість заборжників
m: inc SI; переходимо до наступного студенту
loop nzDL, «0» AH, 6 21h
--------------------------
Команди зсуву
Формат команд арифметичного і логічного зсуву можна представити так: <ім'я> sXY OP1, OP2; <Коментар>
Тут X - h або a, Y - l або r; OP1 - r або m, OP2 - r або CL
І для всіх команд зсуву в CL використовуються тільки 5 молодших розрядів, які приймають значення від 0 до 31. При зсуві на один розряд:
Тут знаковий біт поширюється на зрушувані розряди. Наприклад,
(AL)=11010101
sar AL, 1; (AL)=11101010 і CF=1
Зрушення більше, ніж на 1, еквівалентні відповідним зрушень на 1, виконаним послідовно.
Зрушення підвищеної точності для i186 і вище:
OP1, OP2, OP3; OP1, OP2, OP3;
Вміст першого операнда (OP1) зсувається на (OP3) розрядів також, як і в командах shr і shl але біт, що вийшов за розрядну сітку, що не обнуляється, а заповнюється вмістом другого операнда, яким може бути тільки регістр.
Циклічні зсуви:
Після виконання команди циклічного зсуву CF завжди дорівнює останньому биту, який вийшов за межі приймача
Циклічні зсуви з перенесенням вмісту прапорця CF:
Для всіх команд зсуву прапори ZF, SF, PF встановлюються відповідно до результатом. AF - не визначений. OF - не визначений при зрушеннях на кілька розрядів, при зсуві на 1 розряд в залежності від команди: - для циклічних команд підвищеної точності і sal, shl пра...