Главная страница
Навигация по странице:

  • Команда T Код Пояснения C Z P S N H

  • 5.3.

  • S (F7) Sign - Флаг знака

  • Z (F6) Zero - Флаг нуля

  • Pppdddff


    Скачать 1.31 Mb.
    НазваниеPppdddff
    Дата05.09.2022
    Размер1.31 Mb.
    Формат файлаpdf
    Имя файлаZ80-Central-Processor-Unit.pdf
    ТипДокументы
    #663609
    страница4 из 7
    1   2   3   4   5   6   7
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    LD r1,r2 4
    01 r1 r2 r1 ← r2
    LD r,(HL)
    7 01 r
    110 r ← (HL)
    LD (HL),r
    7 01 110 r
    (HL) ← r
    LD r,n
    7 00 r
    110 r ← n
    - n
    -
    LD (HL),n
    10 00 110 110
    (HL) ← n
    - n
    -
    LD r,(IX+d)
    19 11 011 101 r ← (IX+d)
    01 r
    110
    - d
    -
    LD r,(IY+d)
    19 11 111 101 r ← (1Y+d)
    01 r
    110
    - d
    -
    LD {IX+d),r
    19 11 011 101
    (IX+d) ← r
    01 110 r
    - d
    -
    LD (IY+d),r
    19 11 111 101
    (IY+d) ← r
    01 110 r
    - d
    -
    LD (IX+d),n
    19 11 011 101
    (IX+d) ← n
    00 110 110
    - d
    -
    - n
    -
    LD (IY+d),n
    19 11 111 101
    (IY+d) ← n
    00 110 110
    - d
    -
    - n
    -
    LD A,(BC)
    7 00 001 010
    A ← (BC)
    LD A,(DE)
    7 00 011 010
    A ← (DE)
    LD A,(nn)
    13 00 111 010
    A ← (nn)
    - n
    -
    - n
    -
    LD (BC),А
    7 00 000 010
    (BC) ← А
    LD (DE),A
    7 00 010 010
    (DE) ← A
    LD (nn),A
    13 00 110 010
    (nn) ← A
    - n
    -
    - n
    -
    LD A,I
    9 11 101 101
    A ← I
    ?
    IF
    ?
    0 0
    01 010 111
    LD A,R
    9 11 101 101
    A ← R
    ?
    IF
    ?
    0 0
    01 011 111
    LD I,A
    9 11 101 101
    I ← A
    01 000 111
    LD R,A
    11 101 101
    R ← A
    01 001 111
    Таблица 5.1.2. 16-битовые команды загрузки
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    LD dd,nn
    10 00 dd0 001 dd ← nn
    - n
    -
    - n
    -
    LD IX,nn
    14 11 011 101
    IX ← nn
    00 100 001
    - n
    -
    - n
    -
    LD IY,nn
    14 11 111 101
    IY ← nn
    00 100 001
    - n
    -
    - n
    -
    LD HL,(nn)
    16 00 101 010
    H ← (nn+1) L ← (nn)
    - n
    -
    - n
    -

    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    LD dd,(nn)
    20 11 101 101 dd
    H
    ← (nn+1)
    01 dd1 011 dd
    L
    ← (nn)
    - n
    -
    - n
    -
    LD IX,(nn)
    20 11 011 101
    IX
    H
    ← (nn+1)
    00 101 010
    IX
    L
    ← (nn)
    - n
    -
    - n
    -
    LD IY,(nn)
    20 11 111 101
    IY
    H
    ← (nn+1)
    00 101 010
    IY
    L
    ← (nn)
    - n
    -
    - n
    -
    LD (nn),HL
    16 00 100 010
    (nn+1) ← H (nn) ← L
    - n
    -
    - n
    -
    LD (nn),dd
    20 11 101 101
    (nn+1) ← dd
    H
    01 dd0 011
    (nn) ← dd
    L
    - n
    -
    - n
    -
    LD (nn),IX
    20 11 011 101
    (nn+1) ← IX
    H
    00 100 010
    (nn) ← IX
    L
    - n
    -
    - n
    -
    LD (nn),IY
    20 11 111 101
    (nn+1) ← IY
    H
    00 100 010
    (nn) ← IY
    L
    - n
    -
    - n
    -
    LD SP,HL
    6 11 111 001
    SP ← HL
    LD SP,IX
    10 11 011 001
    SP ← IX
    11 111 001
    LD SP,IY
    10 11 111 001
    SP ← IY
    11 111 001
    PUSH qq
    11 11 qq0 101
    (SP-2) ← qq
    L
    (SP-1) ← qq
    H
    PUSH IX
    15 11 011 101
    (SP-2) ← IX
    L
    11 100 101
    (SP-1) ← IX
    H
    PUSH IY
    15 11 111 101
    (SP-2) ← IY
    L
    11 100 101
    (SP-1) ← IY
    H
    POP qq
    10 11 qq0 001 qq
    H
    ← (SP+1) qq
    L
    ← (SP)
    POP IX
    14 11 011 101
    IX
    H
    ← (SP+1)
    11 100 001
    IX
    L
    ← (SP)
    POP IY
    14 11 111 101
    IY
    H
    ← (SP+1)
    11 100 001
    IY
    L
    ← (SP)
    Таблица 5.1.З. Команды обработки блоков
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    LDI
    16 11 101 101
    (DE) ← (HL)
    ?
    0 0
    10 100 000 затем DE ← DE+1
    P=0, если BC-1=0
    HL ← HL+1
    P=1, если BC-1≠0
    BC ← BC-1
    LDIR
    21 11 101 101
    (DE) ← (HL)
    0 0
    0
    (16)
    10 110 000 затем DE ← DE+1
    HL ← HL+1
    BC ← BC-1 и повтор до BC=0
    LDD
    16 11 101 101
    (DE) ← (HL)
    ?
    0 0
    10 101 000 затем DE ← DE-1
    P=0, если BC-1=0
    HL ← HL-1
    P=1, если BC-1≠0
    BC ← BC-1

    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    LDDR
    21 11 101 101
    (DE) ← (HL)
    0 0
    0
    (16)
    10 111 000 затем DE ← DE-1
    HL ← HL-1
    BC ← BC-1 и повтор до BC=0
    CPI
    16 11 101 101
    A-(HL)=?
    ?
    ?
    ?
    1
    ? затем HL ← HL+1
    Z=1, если A=(HL)
    ВС←ВС-1
    Z=0, если A≠(HL)
    Р=0, если BC-1=0
    Р=1, если BC-1≠0
    CPIR
    21 11 101 101
    A-(HL)=?
    ?
    ?
    ?
    1
    ?
    (16)
    10 110 001 затем HL ← HL+1
    Z=1, если A=(HL)
    ВС←ВС-1
    Z=0, если A≠(HL) и повтор по BC=0
    Р=0, если BC-1=0 или A=(HL)
    Р=1, если BC-1≠0
    CPD
    16 11 101 101
    A-(HL)=?
    ?
    ?
    ?
    1
    ?
    10 101 001 затем HL ← HL-1
    Z=1, если A=(HL)
    ВС←ВС-1
    Z=0, если A≠(HL)
    Р=0, если BC-1=0
    Р=1, если BC-1≠0
    CPDR
    21 11 101 101
    A-(HL)=?
    ?
    ?
    ?
    1
    ?
    (16)
    10 111 001 затем HL ← HL-1
    Z=1, если A=(HL)
    ВС←ВС-1
    Z=0, если A≠(HL) и повтор по BC=0
    Р=0, если BC-1=0 или A=(HL)
    Р=1, если BC-1≠0
    Таблица 5.1.4. 8-битовые арифметические и логические команды
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    ADD A,r
    4 10 000 r
    A ← A+r
    ?
    ?
    V
    ?
    0
    ?
    ADD A,n
    7 11 110
    A ← A+n
    ?
    ?
    V
    ?
    0
    ?
    - n
    -
    ADD A,(HL)
    7 10 000 110
    A ← A+(HL)
    ?
    ?
    V
    ?
    0
    ?
    ADD A,(IX+d)
    19 11 011 101
    A ← A+(IX+d)
    ?
    ?
    V
    ?
    0
    ?
    10 000 110
    - d
    -
    ADD A,(IY+d)
    19 11 111 101
    A ← A+(IY+d)
    ?
    ?
    V
    ?
    0
    ?
    10 000 110
    - d
    -
    ADC A,s
    001
    A ← A+s+C
    ?
    ?
    V
    ?
    0
    ?
    SUB s
    010
    A ← A-s
    ?
    ?
    V
    ?
    1
    ?
    SBC A,s
    011
    A ← A-s-C
    ?
    ?
    V
    ?
    1
    ?
    AND s
    100
    A ← A AND s
    0
    ?
    P
    ?
    0 1
    OR s
    110
    A ← A OR a
    0
    ?
    P
    ?
    0 0
    XOR s
    101
    A ← A XOR a
    0
    ?
    P
    ?
    0 0
    CP s
    111
    A-s=?
    ?
    ?
    V
    ?
    1
    ?
    Код подставляется вместо 000 в командах
    INC r
    4 00 r
    100 г ← r+1
    ?
    V
    ?
    0
    ?
    INC (HL)
    11 00 110 100
    (HL) ← (HL) + 1
    ?
    V
    ?
    0
    ?
    INC (IX+d)
    23 11 011 101
    (IX+d) ← (IX+d)+1
    ?
    V
    ?
    0
    ?
    00 110 100
    - d
    -
    INC (IY+d)
    23 11 111 101
    (IY+d) ← (IY+d)+1
    ?
    V
    ?
    0
    ?
    00 110 100
    - d
    -
    DEC t
    101 t ← t-1
    ?
    V
    ?
    1
    ?
    Код подставляется вместо 100 в командах INC

    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    DAA
    4 00 100 111
    Двоично-десятичная коррекция A
    ?
    ?
    P
    ?
    ?
    CPL
    4 00 101 111
    A ← инверсия A
    1 1
    NEG
    8 11 101 101
    А ← -А
    ?
    ?
    V
    ?
    1
    ?
    01 000 100
    CCF
    4 00 111 111
    C ← инверсия C
    ?
    0
    X
    SCF
    4 00 110 111
    C ← 1 1
    0 0
    Таблица 5.1.5. 16 битовые арифметические команды
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    ADD HL,dd
    11 00 dd1 001
    HL ← HL+dd
    ?
    0
    X
    ADC HL,dd
    15 11 101 101
    HL ← HL+dd+C
    ?
    ?
    V
    ?
    0
    X
    01 dd1 010
    SBC HL,dd
    15 11 101 101
    HL ← HL-dd-C
    ?
    ?
    V
    ?
    1
    X
    01 dd0 010
    ADD IX,pp
    15 11 011 101
    IX ← IX+pp
    ?
    0
    X
    00 pp1 001
    ADD IY,rr
    15 11 111 101
    IY ← IY+rr
    ?
    0
    X
    00 rr1 001
    INC dd
    6 00 dd0 011 dd ← dd+1
    INC IX
    10 11 011 101
    IX ← IX+1 00 100 011
    INC IY
    10 11 111 101
    IY ← IY+1 00 100 011
    DEC dd
    6 00 dd1 011 dd ← dd-1
    DEC IX
    10 11 011 101
    IX ← IX-1 00 101 011
    DEC IY
    10 11 111 101
    IY ← IY-1 00 101 011
    Таблица 5.1.6. Команды переходов
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    JP nn
    10 11 000 011
    PC ← nn
    - n
    -
    - n
    -
    JP cc,nn
    10 11 cc
    010
    PC ← nn, если
    - n
    - условие выполняется
    - n
    -
    PC ← PC+3, если нет
    JR e
    12 00 011 000
    PC ← PC+e
    - e-2
    -
    JR C,e
    12 00 111 000
    PC ← PC+e, еcли
    C=1
    (7)
    - e-2
    -
    PC ← PC+2, если
    C=0
    JR NC,e
    12 00 110 000
    PC ← PC+e, если
    C=0
    (7)
    - e-2
    -
    PC ← PC+2, если
    C=1
    JR Z,e
    12 00 101 000
    PC ← PC+e, если
    Z=1
    (7)
    - e-2
    -
    PC ← PC+2, если
    Z=0
    JR NZ,e
    12 00 100 000
    PC ← PC+e, если
    Z=0
    (7)
    - e-2
    -
    PC ← PC+2, если
    Z=1
    JP (HL)
    4 11 101 001
    PC ← HL
    JP (IX)
    8 11 011 101
    PC ← IX
    11 101 001
    PC ← IY
    JP (IY)
    8 11 111 101 11 101 001

    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    DJNZ e
    13 00 010 000
    B ← B-1,
    (8)
    - e-2
    - при B=0 PC ← PC+2 при B≠0 PC ← PC+e
    Таблица 5.1.7 Команды для работы с битами
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    BIT b,r
    8 11 001 011
    Z ← инверсия r b
    ?
    X
    X
    0 1
    01 b r
    BIT b,(HL)
    12 11 001 011
    Z ← инверсия (HL)
    b
    ?
    X
    X
    0 1
    01 b
    110
    BIT b,(IX+d)
    20 11 011 101
    Z ← инверсия (IX+d)
    b
    ?
    X
    X
    0 1
    11 001 011
    - d
    -
    01 b
    110
    BIT b,(IY+d)
    20 11 111 101
    Z ← инверсия (IY+d)
    b
    ?
    X
    X
    0 1
    11 001 011
    - d
    -
    01 b
    110
    SET b.r
    8 11 001 011 r
    b
    ← 1 11 b r
    SET b,(HL)
    15 11 001 011
    (HL)
    b
    ← 1 11 b
    110
    SET b,(IX+d)
    23 11 011 101
    (IX+d)
    b
    ← 1 11 001 011
    - d
    -
    11 b
    110
    SET b,(IY+d)
    23 11 111 101
    (IY+d)
    b
    ← 1 11 001 011
    - d
    -
    11 b
    110
    RES b,t
    10 t
    b
    ← 0. Код 10 подставляется вместо
    11 в командах SET
    Таблица 5.1.8 Команды обмена
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    EX DE,HL
    4 11 101 011
    DE ↔ HL
    EX AF,AF’
    4 00 001 000
    AF ↔ AF’
    EXX
    4 11 011 001
    BC ↔ ВС’ DE ↔ DE’
    HL ↔ HL’
    EX (SP),HL
    19 11 100 011
    H ↔ (SP+1) L ↔ (SP)
    EX (SP),IX
    23 11 011 101
    IX
    H
    ↔ (SP+1)
    11 100 011
    IX
    L
    ↔ (SP)
    EX (SP),IY
    23 11 111 101
    IY
    H
    ↔ (SP+1)
    11 100 011
    IY
    L
    ↔ (SP)
    Таблица 5.1.9. Команды ввода вывода
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    IN A,(n)
    11 11 011 011
    A ← (n) ADR ← A/n
    - n
    -
    IN r,1С)
    12 11 101 101 r ← (C) ADR ← B/C
    ?
    P
    ?
    0
    ?
    01 r
    000
    INF
    12 11 101 101
    F ← (C) ADR ← B/C
    ?
    P
    ?
    0
    ?
    01 110 000
    F-регистр флагов
    INI
    16 11 101 101
    (HL)←(C) ADR←B/C
    ?
    X
    X
    1
    X
    10 100 010 затем B ← B-1
    Z=1, если B-1=0
    HL ← HL+1
    Z=0, если B-1≠0
    INIR
    21 11 101 101
    (HL)←(C) ADR←B/C
    1
    X
    X
    1
    X
    (16)
    10 110 010 затем B ← B-1
    HL ← HL+1 и повтор до B=0
    IND
    16 11 101 101
    (HL)←(C) ADR←B/C
    ?
    X
    X
    1
    X
    10 101 010 затем B ← B-1
    Z=1, если B-1=0
    HL ← HL-1
    Z=0, если B-1≠0

    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    INDR
    21 11 101 101
    (HL)←(C) ADR←B/C
    1
    X
    X
    1
    X
    (16)
    10 111 010 затем B ← B-1
    HL ← HL-1 и повтор до B=0
    OUT (n),A
    11 11 010 011
    (n) ← A ADR ← A/n
    - n
    -
    OUT (C),r
    12 11 101 101
    (C) ← r ADR ← B/C
    01 r
    001
    OUTI
    16 11 101 101
    (C)←(HL) ADR←B/C
    ?
    X
    X
    1
    X
    10 100 011 затем B ← B-1
    Z=1, если B-1=0
    HL ← HL+1
    Z=0, если B-1≠0
    OTIR
    21 11 101 101
    (C)←(HL) ADR←B/C
    1
    X
    X
    1
    X
    (16)
    10 110 011 затем B ← B-1
    HL ← HL+1 и повтор до B=0
    OUTD
    16 11 101 101
    (C)←(HL) ADR←B/C
    ?
    X
    X
    1
    X
    10 101 011 затем B ← B-1
    Z=1, если B-1=0
    HL ← HL-1
    Z=0, если B-1≠0
    OTDR
    21 11 101 101
    (C)←(HL) ADR←B/C
    1
    X
    X
    1
    X
    1
    (16)
    10 111 011 затем B ← B-1
    HL ← HL-1 и повтор до B=0
    Таблица 5.1.10. Команды вызова и возврата
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    CALL nn
    17 11 001 101
    (SP-1) ← PC
    H
    - n
    -
    (SP-2) ← PC
    L
    - n
    -
    PC ← nn
    CALL cc,nn
    17 11 cc
    100
    (10)
    - n
    -
    (SP-2) ← PC
    L
    - n
    -
    PC←nn, если cc верно
    PC←PC+3, если нет
    RET
    10 11 001 001
    PC
    L
    ← (SP)
    PC
    H
    ← (SP+1)
    RET cc
    11 11 cc
    000
    PC
    L
    ← (SP)
    (6)
    PC
    H
    ← (SP+1)
    PC ← PC+1, если cc не выполняется
    RETI
    14 11 101 101
    Возврат из INT
    01 001 101
    RETN
    14 11 101 101
    Возврат из NMI
    01 000 101
    RST p
    11 11 a
    111
    (SP-1) ← PC
    H
    (SP-2) ← PC
    L
    PC ← 0 PC
    L
    ← p
    Для некоторых команд в колонке T указано два значения - без скобок и в скобках:
    - для условных команд JR, CALL, RET в скобках указано количество тактов выполнения команды при невыполнении условия;
    - для "цикличных" команд DJNZ, LDIR, LDDR, CPIR, CPDR, INIR, INDR, OTIR. OTDR в скобках указано количество тактов, за которое выполняется команда в последний (перед завершением) раз.
    Таблица 5.1.11. Команды сдвига и вращения
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    RLCA
    4 00 000 111
    ?
    0 0
    RLA
    4 00 010 111
    ?
    0 0
    RRCA
    4 00 001 111
    ?
    0 0
    RRA
    4 00 011 111
    ?
    0 0

    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    RLC r
    8 11 001 011
    ?
    ?
    P
    ?
    0 0
    00 000 r
    RLC (HL)
    15 11 001 011
    ?
    ?
    P
    ?
    0 0
    00 000 110
    RLC (IX+d)
    23 11 011 101
    ?
    ?
    P
    ?
    0 0
    11 001 011
    - d
    -
    00 000 110
    RLC (IY+d)
    23 11 111 101
    ?
    ?
    P
    ?
    0 0
    11 001 011
    - d
    -
    00 000 110
    RL t
    010
    ?
    ?
    P
    ?
    0 0
    RRC t
    001
    ?
    ?
    P
    ?
    0 0
    RR t
    011
    ?
    ?
    P
    ?
    0 0
    SLA t
    100
    ?
    ?
    P
    ?
    0 0
    SRA t
    101
    ?
    ?
    P
    ?
    0 0
    SRL t
    111
    ?
    ?
    P
    ?
    0 0
    RLD
    18 11 101 101
    ?
    P
    ?
    0 0
    01 101 111
    RRD
    18 11 101 101
    ?
    P
    ?
    0 0
    01 100 111
    Таблица 5.1.12. Команды управления микропроцессором
    Команда
    T
    Код
    Пояснения
    C
    Z
    P
    S
    N
    H
    NOP
    4 00 000 000
    Нет операции
    HALT
    4 01 110 110
    Останов
    DI
    4 11 110 011
    Прерывания запрещены
    EI
    4 11 111 011
    Прерывания разрешены
    IM 0 8
    11 101 101
    Режим прерывания 0 01 000 110
    IM 1 8
    11 101 101
    Режим прерывания 1 01 010 110
    IM 2 8
    11 101 101
    Режим прерываний 2 01 011 110
    5.3.
    Флаги признаков
    Каждый из двух флаговых регистров МП Z80 содержит по шесть информационных битов, состояние которых устанавливается в соответствии с результатом операции. Флаги S, Z, C и P/V используются в командах условного перехода, условного вызова подпрограмм и условного возврата из подпрограмм. Флаги H и N непосредственно программно не анализируются. Они используются в двоично-десятичной арифметике.
    S (F7) Sign - Флаг знака
    Этот Флаг предназначен для обработки чисел со знаком. Флаг устанавливается, когда результат операции отрицателен. Т.к. бит 7 является знаковым (любое отрицательное число содержит единицу в 7 бите), то этот флаг копирует состояние 7 бита аккумулятора.
    При программировании состояние этого флага условно кодируется как P (Plus, знак плюс, S=0) и M (Minus, знак минус, S=1).
    Z (F6) Zero - Флаг нуля
    Флаг Z устанавливается или обнуляется в результате выполнения следующих команд:

    1. При 8-битных арифметических и логических операциях флаг устанавливается в 1, если результат выполнения команды равен нулю. Если результат не равен нулю, флаг Z обнуляется.
    2. При командах поиска и сравнения флаг Z устанавливается в 1. когда содержимое ячейки памяти адресуемой регистровой парой HL, совладает с содержимым аккумулятора.
    3. После выполнения команды тестирования отдельного бита во флаг Z записывается инвертированное значение проверенного бита.
    4. Если при выполнении команд INI, IND, OUTI, OUTD результат декремента (В-1) не равен нулю, то флаг Z=0. Когда результат (В-1)=0, флаг Z устанавливается.
    5. Флаг Z устанавливается в 1, когда в результате выполнения команд IN r,(C) содержимое регистра r обнуляется.
    При программировании этот флаг следует условно кодировать как Z (Zero, результат равен нулю, Z=1) и NZ (No Zero, результат не равен нулю, Z=0)
    1   2   3   4   5   6   7


    написать администратору сайта