МИКРОПРОЦЕССОР Z80

         

МЕТОДЫ АДРЕСАЦИИ


            После описания каждого метода адресации приведено по два примера его использования.

            Безоперандные команды. Для их выполнения процессору не требуется дополнительных значений:

                        HALT

                        NOP

            Регистровая адресация. Операнд расположен в ячейке памяти, непосредственно следующей за кодом команды:

                        INC     A

                        ADD    HL, BC

            Непосредственная адресация. Операнд расположен в ячейке памяти, непосредственно следующей за кодом команды. Если операнд двухбайтовый, то он занимает две ячейки за кодом команды (расширенная непосредственная адресация):

                        LD       C, %1011

                        LD       HL, #1234

            Неявная адресация. Регистр, в котором содержится операнд, однозначно определен данной командой:

                        RLA

                        LDIR

            Регистровая косвенная адресация. Операнд расположен в ячейке памяти, адрес которой содержится в регистровой паре:

                        DEC    (HL)

                        LD       A, (BC)

            Далее по тексту для обозначения этого типа адресации будет использоваться фраза: «операнд расположен в ячейке, адресуемой регистром».

            Индексная адресация. Адрес размещения операнда в памяти образуется сложением значения индексного регистра и некоторого смещения (-128…+127), явно указанного в команде:

            SLA (IX+2)

            LD       A, (IY-25)



Косвенная адресация. Адрес операнда содержится в ячейках памяти, расположенных непосредственно за кодом команды:

            LD       A, (1234)

            LD       (#C000), DE

            Побитовая адресация. Командой задается конкретный бит операнда, над которым будет проводиться операция:

                        SET     4, (HL)

                        BIT      7, A

            Относительная адресация. Адрес задается как однобайтовое смещение (-128…+127) относительно текущего значения регистра счетчика команд*:

                        JR        $+#23

                        DJNZ  $-6

            Расширенная адресация. Адрес задается двухбайтовым операндом:

                        CALL  1234

                        JP        NC, #1601

            Различные методы адресации могут быть совмещены в командах, работающих с двумя операндами:

                        LD       (HL), 12

_____________________________________________________________________________



Помимо 78 команд своего предшественника


-------------------------------------------------------

СИСТЕМА КОМАНД

Помимо 78 команд своего предшественника – микропроцессора I8080, в Z80 реализовано 80 новых. В целом он обрабатывает 696 кодов операций (с учетом использования в командах различных регистров, способов адресации и т.п.)

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

            При записи команд приняты следущие обозначения:

   A – 8-разрядный регистр аккумулятора;

   B, C, D, E, H, L – 8-разрядные регистры данных;

   I – 8-разрядный регистр вектора прерываний:

   R – 8-разрядный регистр регенерации динамического ОЗУ;

   AF – 16-разрядный регистр, старший байт которого содержит значение аккумулятора, а младший байт – значение флагового регистра;

   BC, DE, HL – 16-разрядные спаренные регистры;

   IX, IY – 16-разрядные индексные регистры;

   SP – 16-разрядный регистр указателя стека;

   PC – 16-разрядный регистр счетчика команд;

   n – 8-разрядный операнд, непосредственно указанный в команде;

   nn – 16-разрядный операнд, непосредственно указанный в команде;

   (HL), (BC), (DE) – 8-разрядные значения ячеек памяти, адреса которых содержатся в соответствующих регистровых парах;

   (nn) –  в командах, оперирующих байтами:

8-разрядное значение ячейки памяти, адрес которой задается двумя байтами nn непосредственно в команде;

   (nn) – в командах, оперирующих 16-разрядными значениями:

            16-разрядное значение смежных ячеек памяти, адрес nn первой из которых (младшего байта значения) указан непосредственно в команде, адрес второй ячейки (старшего байта значения) равен nn+1;

   (IX+d), (IY+d) – 8-разрядные значения ячеек памяти, адреса nn которых вычисляются сложением значения соответствующего индексного регистра и 8-разрядного смещения d, указанного непосредственно в команде;

   b – номер участвующего в операции бита (0…7)

   cc – условие, при истинности которого выполняется команда;



   e – 8-разрядное смещение относительно текущего адреса;

   CY – значение флага переноса;

   ¦ - состояние флага изменяется в результате операции;

   • - состояние флага не изменяется в результате операции;

   0 – флаг сбрасывается в результате операции;

   1 – флаг устанавливается в результате операции;

   х – состояние флага не определено;

   V – флаг P/V индицирует арифметическое переполнение в результате операции;

   P – флаг P/V индицирует «четность» в результате операции;

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

_____________________________________________________________________________