Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Обработка результатов ввода сигналов с параллельного порта



1. Инверсия

А:= not B; {если B = 01011100, то A = 10100011}

2. Логическое “И” (логическое умножение, конъюнкция)

А:= B and C;

Результат работы для каждого бита определяется таблицей истинности:

i = 0.. 7

Ai Bi Ci
     
     
     
     

Ai = Bi*Ci = Bi Λ Ci

Пример: В = 01101100

С = 00100000

А:= B and C

А = 00100000

Логическое “И” используют для выделения нужных разрядов по маске. Один из операндов играет роль маски выделения, где в разрешенных разрядах должны стоять единицы.

3. Логическое “ИЛИ” (логическое сложение или дизъюнкция)

А:= B or C;

i = 0.. 7

Ai Bi Ci
     
     
     
     

Аi:= Bi + Ci;

4. Исключающее “ИЛИ” (операция несовпадения, сложение с блокировкой переноса)

А:= B хor C;

Операцию удобно использовать как операцию несовпадения.

i = 0.. 7

Ai Bi Ci
     
     
     
     

C:= А and B

C:= А хor B

{var A,B,C: byte или var A,B,C: shortint (если работаем с двухбайтными переменными и регистрами)}

5. Операция сдвига (левый сдвиг)

C: = А shl B; {A – операнд, B – число сдвигов влево, shl (Shift Left) - левый сдвиг}

Разряды выходящие влево за разрядную сетку теряются, а освободившиеся разряды справа заполняют нулями.

A: = $AA; {1010’1010}

B: = A shl 1; {0101’0100}

Writeln (B); {8410}

Сокращенное умножение на 2

Если в результате сдвига влево код не выходит за разрядную сетку, то в результате сдвига число умножается на степень двойки. Степень равна числу сдвигов.

Пример: 0000’0101 = 510

shl 1

0000’1010 = 1010

При отсутствии арифметического процессора, умножение сдвигами может экономить машинное время в десятки раз.

6. Операция сдвига вправо

А:= B shr C; {B – исходный код, C - число сдвигов, shr (Shift Right) - правый сдвиг}

Выходящие за разрядную сетку разряды теряются, а освободившиеся слева – заполняются нулями. Каждый сдвиг вправо уменьшает число в два раза.





Дата публикования: 2014-11-28; Прочитано: 242 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...