Курс лекций. - Микропроцессоры


Операторы языка программирования PL/M-51 - часть 3


Например, пусть в переменной a хранится число 5, а в переменной b - число 6. Тогда:

a|b=7 //00000101 or 00000110 = 00000111 a||b=1 //(00000101)->1 (00000110)->1; (1 or 1= 1), Результат равен 00000001 a&b=4 //00000101 and 00000110 = 00000100 a&&b=1 //(00000101)->1 (00000110)->1; (1 and 1= 1), Результат равен 00000001 a^b=3 //00000101 xor 00000110 = 00000011

В языке программирования C-51 также определено несколько одноместных логических операций:

  1. '!' инверсия операнда
  2. '~' побитовая инверсия операнда

Например, пусть в переменной a хранится число 5. Тогда:

a=~a; //~00000101 = 11111010 = 250 a=~a; //~11111010 = 00000101 = 5 a=!a; //(00000101)->1; ~1 = 0 a=!a; // ~0 = 1

В условном операторе и операторах цикла используются операции отношения:

  1. < меньше
  2. > больше
  3. <= меньше или равно
  4. >= больше или равно
  5. == равно
  6. != не равно

Если указанное отношение между операндами верно, то результат равен 1, иначе 0. Например, если d=7, то:

(d > 5) результат будет 1 (истина) (d = 4) результат будет 0 (ложь)

Над переменными-указателями возможно проведение адресных операций.

  1. '*' операция косвенной адресации
  2. '&' вычисление адреса переменной

Операция косвенной адресации '*' осуществляет доступ к переменной при помощи указателя. Результатом операции является значение переменной, на которую указывает операнд. Типом результата является тип переменной, адресуемой указателем. При работе с указателями необходимо быть предельно осторожными, так как, если указатель содержит недопустимый адрес, то результат операции чтения или записи будет непредсказуем и может привести к выходу проектируемого устройства из строя.

Операция вычисления адреса переменной '&' дает адрес ячейки памяти своего операнда. Операндом может быть любой идентификатор. Имя функции или массива также может быть операндом операции вычисления адреса переменной, хотя в этом случае знак операции вычисления адреса переменной является лишним, так как имена массивов и функций являются и так являются адресами.


- Начало -  - Назад -  - Вперед -