i3D9M

      Разоблачение -- несанкционированный доступ к облачной информации.

Ретроспектива, маски
--------------------

Обучение "впитыванием\" навыков (каждый день делаю что-то на компьютере, невольно запоминаю, что выбрать из предложенного системой меню и окон, как установить/снять приложение и т.п.) резко отличается от обучения, где требуется найти решение, комбинируя запомненное. Пример -- работа с масками. Необходимо помнить много вещей (двоичную, 16-ную системы счисления, логические операции,..) без знания которых удается жить вне работы по специальности.

Задача: воздействовать только на заданные выходные устройства, не изменяя состояния других. Для решения этой задачи служит двоичная маска (ДМ). Пример:

  биты: 76543210
  Было: 01100010

Изменить биты 4,5 (0,1,2,3,6,7 не трогать). Новое состояние битов 5,4 определяется булевыми переменными x5,x4 и заранее неизвестно.

  дм:   00110000

Вычисляем:

  01100010 & ~00110000 | b5<<5 | b4<<4 = 62h & ~0x30  | b5<<5 | b4<<4

где

  &  -- bitwise and
  |  -- bitwise or
  ~  -- bitwise not
  << -- logical shift left
  >> -- logical shift right

Пример двв 7-сегментных индикатора на одном порту (8-бит). Старший бит  -- адрес индикатора:

        a          a             00   0011 1111, 1011 1111  3f bf
       ---        ---            01   0011 1111, 0000 0110
    f/   /b    f/   /b           02   ..
   g --- g    g --- g            03
  e/   /c    e/   /c             04
   ---        ---                05
    d          d                 06
                                 07
                                 08
                                 09

Software for education (SMZ), код

      CLO
      MOV AL, 0
      OUT 02
      MOV AL, 1
      OUT 02

  Start:
      MOV AL,FE
      OUT 02
      MOV AL,FF
      OUT 02
      JMP Start
      END
