Das Schneider CPC Systembuch

Anhang

Die Z80

Wirkung der Z80-Befehle auf die Flags

Das Flag-Byte
        +---+---+---+---+---+---+---+---+
        ! S ! Z ! - ! H ! - !P/V! N ! C !
        +---+---+---+---+---+---+---+---+
Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag    Name          Bedeutung wenn 0           Bedeutung wenn 1
--------------------------------------------------------------------------------
Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
7 Signum M / Minus / Negativ P / Plus / Positiv Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
6 Zero NZ / ungleich Real: NullNull Z / Zero / gleich Real: NullNull Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
5 ------ Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
4 Hilfs-Carry --- wird vom Befehl DAA ausgewertet --- Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
3 ------ Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
2 Parity PO / ungerade Quersumme PE / gerade Quersumme Overflow PO / kein Überlauf PE / Überlauf ins Vorzeichen-Bit Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
1 Add/Sub --- wird vom Befehl DAA ausgewertet --- Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
0 Carry NC / kein Übertrag C / Übertrag vom höchsten Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
--------------------------------------------------------------------------------

Benutzte Abkürzungen

 * -> Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag wird entsprechend dem Ausgang der Die Fließkomma-Routinen: OperationenOperation gesetzt
 0 -> Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag ist nach der Die Fließkomma-Routinen: OperationenOperation immer zurückgesetzt
 1 -> Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag ist nach der Die Fließkomma-Routinen: OperationenOperation immer gesetzt
 P -> P/V-Flag wird im Sinne von Parity gesetzt
 V -> P/V-Flag wird im Sinne von Overflow gesetzt
 ? -> Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag wird evtl. geändert, zeigt aber nichts an
        Befehle                  ! C ! Z !P/V! S !   Queues als verkettete Liste: Anmerkung:Anmerkung
---------------------------------+---+---+---+---+----------------------------
ADD Operationen: BD5B / 349A / 349A:  FLO SUBA,s / ADC Operationen: BD5B / 349A / 349A:  FLO SUBA,s                ! * ! * ! V ! * !
SUB s   / SBC Operationen: BD5B / 349A / 349A:  FLO SUBA,s / CP s   / NEG ! * ! * ! V ! * !
AND s   / OR s    / XOR s        ! 0 ! * ! P ! * !
INC s   / DEC s                  !   ! * ! V ! * !
ADD rr,rr                        ! * !   !   !   !
ADC rr,rr / SBC rr,rr            ! * ! * ! V ! * !
RLA   / RLCA  / RRA   / RRCA     ! * !   !   !   ! 1-Byte-Befehle für Operationen: BD5B / 349A / 349A:  FLO SUBA
RL r  / RLC r / RR r  / RRC r    ! * ! * ! P ! * !
SLA r / SRA r / SLL r / SRL r    ! * ! * ! P ! * !
RLD   / RRD                      !   ! * ! P ! * !
DAA                              ! * ! * ! P ! * !
SCF   / CCF                      ! * !   !   !   !
IN r,(C)                         !   ! * ! P ! * !
INI  / IND  / OUTI  / OUTD       !   ! * ! ? ! ? ! Block-I/O-Operationen sind
INIR / INDR / OTIR  / OTDR       !   ! 1 ! ? ! ? ! Garbage Collection: ... beim CPC 464beim CPC nicht anwendbar !
LDI  / LDD                       !   ! ? ! * ! ? ! PO wenn BC=0 sonst PE
LDIR / LDDR                      !   ! ? ! 0 ! ? !
CPI  / CPD  / CPIR / CPDR        !   ! * ! * ! ? ! Z  wenn Operationen: BD5B / 349A / 349A:  FLO SUBA=(HL) gefunden
                                 !   !   !   !   ! PO wenn BC=0 sonst PE
LD Operationen: BD5B / 349A / 349A:  FLO SUBA,I / LD Operationen: BD5B / 349A / 349A:  FLO SUBA,R                  !   ! * !IFF! * ! IFF=Zustand des EI/DI-FlipF.
Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
BIT
LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
,s ! ! * ! ? ! ? ! ---------------------------------+---+---+---+---+------------------------------

Valid HTML   Valid CSS