5. 19 Прочие команды
Мы рассмотрели почти все команды процессора Z-80, но есть еще несколько команд, не вошедших ни в какие группы. Разберем эти команды по очереди.
Команда NOP.
Ее код - 0. Это команда «нет операции». По ней процессор ничего не делает и выдерживает паузу продолжительностью 4 такта.
Команда CPL.
Ее код - 2F. Она относится к регистру A и инвертирует каждый бит. В результате получается как бы дополнение содержимого аккумулятора до 255 (в абсолютной двоичной арифметике).
Команда NEG.
Ее код - ED 44. Команда работает в дополнительной двоичной арифметике и помещает в регистр А число, равное по абсолютной величине тому, которое там было, но с противоположным знаком.
Влияет на все основные флаги.
Команда SCF.
Код - 37. Команда включает флаг переноса (флаг С).
Команда CCF.
Код - 3F. Команда переключает флаг переноса на противоположный.
Команда HALT.
Код - 76. Эта команда вызывает остановку исполнения программы и последовательно исполняет команду NOP до тех пор, пока не поступит маскируемое прерывание. Команда используется, например, при применении оператора БЕЙСИКа PAUSE.
Интересная особенность: если Вы предварительно отключите маскируемые прерывания командой DI (см. выше), то применение команды HALT однозначно приведет к «зависанию» программы, т.к. прерывания процессор не дождется.
Команда DAA.
Код - 27. По этой команде перестраивается содержимое аккумулятора. Оно переводится из двоичной формы в десятичную, выраженную двоичной записью (BCD-арифметику).