Мы рассмотрели почти все команды процессора 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-арифметику).