Lectures / 01
.pdfЛогическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ
XOR
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Свойства:
Таблица истинности
XOR |
|
0 |
1 |
|
|
|
|
|
|
|
|
0 |
|
0 |
1 |
1 |
|
1 |
0 |
a XOR 0 = a a XOR 1 = a
Логическая операция НЕ
НЕ NOT
NOT 0 = 1 |
Таблица истинности |
|||
NOT 1 = 0 |
NOT |
|
0 |
1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
|
|
Расширение целых чисел
Расширение беззнаковых чисел:
расширяемая часть заполняется нулями Пример: F1 ==> 00F1
Расширение чисел со знаком:
расширяемая часть заполняется значением знакового бита
Примеры: |
F1 |
==> FFF1 |
|
0F |
==> 000F |
Логический сдвиг влево
SHL (shift left)
Перенос |
|
|
|
0 |
|
|
|||
|
||||
|
|
|||
(carry) |
|
|
Примеры:
на 1 бит |
15*2 |
1510= 0F16= 0000111100011110 = 1E16= 3010
на 2 бита |
6*4 |
610= 0616 = 00000110 00011000 = 1816= 2410
Логический сдвиг вправо
SHR (shift right)
Перенос
(carry)
0
Примеры: |
|
|
без знака |
на 1 бит |
254/2 |
25410= FE16=1111111001111111 =7F16=12710
со знаком на 1 бит -2/2 -210= FE16 =11111110 01111111 = 7F16=12710
Арифметический сдвиг вправо
SAR (shift arithmetic right)
Перенос
(carry)
Примеры:
со знаком на 1 бит -2/2 -210= FE16=1111111011111111 =FF16=-110
без знака на 1 бит 254/2 25410=FE16=1111111011111111 = 7F16=25510
Циклические сдвиги
ROL (rotate left)
Циклический сдвиг влево
ROR (rotate right)
Циклический сдвиг вправо
Упакованные данные
Пример: месяц (1…12),
день (1…31), год (0..99)
Пример: регистр EFLAGS