перації впливає на прапори. <В
умова прапори
OF SF ZF CF
DST> SRC 0/1 0 0 0
DST = SRC 0 0 1 0
DST
0/1 - означає, що прапор може дорівнювати 0 або 1 залежно від значень операндів. Прапори OF і SF мають сенс при операціях зі знаковими числами, CF для беззнакових чисел. Прапор переповнення OF встановлюється в 1, якщо в результаті операції складання або віднімання значення переносу в старший двійковий розряд і з старшого двійкового розряду не збігаються. За іншим визначенням OF приймає значення 1, якщо результат перевищує діапазон подання відповідних чисел. Нехай DST> SRC і обидва є однобайтового числами, тоді:
В
DST: 1. (+127) 2. (+127)
SRC: - (+2) - (-2)
------ --------
(+125) (OF) = 0 (+129)? (OF) = 1
У другому прикладі результат перевищує діапазон: -128 <= x <= +127. Прапор знака SF встановлюється в '1 ', якщо старший біт результату операції дорівнює 1, тобто при негативному результаті. В іншому випадку скидається. Прапор нуля ZF встановлюється в '1 'при нульовому результаті (!), інакше скидається. Прапор переносу CF = 1, якщо є перенос зі старшого розряду при додаванні або є позику в молодший розряд при відніманні. Інакше прапор скидається. Для першого прикладу SF = ZF = CF = 0, для другого: SF = 1, ZF = CF = 0.
В
ЛОГІЧНИХ КОМАНДИ І КОМАНДИ ЗРУШЕННЯ
1. AND DST, SRC; поразрядное логічне "І". p> mov dh, 10101100b;
and dh, 0f0h;
в результаті виконання цих двох команд вміст DH стане одно 10100000b. p> 2. OR DST, SRC; поразрядное логічне "АБО". <В
or bx, dx; якщо (BX) = 5F0Fh, а (DX) = 7777h, то після операції
; (BX) = 7F7Fh.
BX
0101 1111 0000 1111 = 5F0F
DX
0111 0111 0111 0111 = 7777
BX (результат)
0111 1111 0111 1111 = 7F7F
3. XOR DST, SRC; поразрядное логічне "виключає АБО". <В
xor al, 55h; якщо (AL) = 5ah, то після операції (AL) = 0fh.
4. NOT DST; інверсія всіх бітів приймача. p> 5. TEST DST, SRC; виконує операцію AND над операндами, але впливає тільки на прапори і не змінює самих операндів. p> 6. SHR DST, CNT; логічний зсув вправо, що звільняються ліворуч біти заповнюються нулем, крайній правий біт виштовхується у прапор CF. Операнд DST може бути осере...