МИКРОПРОЦЕССОР 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

_____________________________________________________________________________



Содержание раздела