Difference between revisions of "Z80Next Only Instruction Table"
From SpecNext official Wiki
(starting the selection of Z80N specific instructions page with a query) |
m (better words) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | In this table only the Z80Next CPU instructions are listed. This is an extract from the table of all instructions: [[Z80_Instruction_Table_NoSemantic]]. | |
− | + | ||
− | + | {| class="wikitable sortable" style="margin:auto" | |
− | + | |+ Next-only (Z80N) Instructions | |
− | + | |- | |
− | + | ! Mnemonic !! Status !! Addressing Mode 1 !! Addressing Mode 2 || Flags: C N PV H Z S || T-States || Summary | |
− | + | |- | |
− | + | | ADD HL/DE/BC, A || E || Register || Register || ? - - - - - || 8 || rr+=unsigned A | |
− | + | |- | |
− | + | | ADD HL/DE/BC, nn || E || Register || Immediate || - - - - - - || 16 || rr+=nn | |
− | + | |- | |
− | + | | BRLC DE,B || E || - || - || - - - - - - || 8 || DE:=DE<<(B&15) OR DE>>(16-B&15) | |
− | | | + | |- |
− | + | | BSLA DE,B || E || - || - || - - - - - - || 8 || DE:=DE<<(B&31) | |
− | + | |- | |
− | + | | BSRA DE,B || E || - || - || - - - - - - || 8 || DE:=signed(DE)>>(B&31) | |
+ | |- | ||
+ | | BSRF DE,B || E || - || - || - - - - - - || 8 || DE:=~(unsigned(~DE)>>(B&31)) | ||
+ | |- | ||
+ | | BSRL DE,B || E || - || - || - - - - - - || 8 || DE:=unsigned(DE)>>(B&31) | ||
+ | |- | ||
+ | | JP (C) || E || Register || - || ? ? ? ? ? ? || 13 || PC:=PC&$C000+IN(C)<<6 | ||
+ | |- | ||
+ | | LDDRX || E || - || - || - - - - - - || 21/16 || do LDDX while(BC>0) | ||
+ | |- | ||
+ | | LDDX || E || - || - || - - - - - - || 16 || {if HL*!=A DE*:=HL*;} DE++; HL--; BC-- | ||
+ | |- | ||
+ | | LDIRX || E || - || - || - - - - - - || 21/16 || do LDIX while(BC>0) | ||
+ | |- | ||
+ | | LDIX || E || - || - || - - - - - - || 16 || {if HL*!=A DE*:=HL*;} DE++; HL++; BC-- | ||
+ | |- | ||
+ | | LDPIRX || E || - || - || - - - - - - || 21/16 || do{t:=(HL&$FFF8+E&7)*; {if t!=A DE*:=t;} DE++; BC--}while(BC>0) | ||
+ | |- | ||
+ | | LDWS || E || - || - || - 0 ! S S S || 14 || DE*:=HL*; INC L; INC D; | ||
+ | |- | ||
+ | | MIRROR A || E || Register || - || - - - - - - || 8 || A[76543210]:=A[01234567] | ||
+ | |- | ||
+ | | MUL d,e || E || - || - || - - - - - - || 8 || DE:=D*E | ||
+ | |- | ||
+ | | NEXTREG n, A || E || Immediate || Accumulator || - - - - - - || 17 || HwNextReg_n:=A | ||
+ | |- | ||
+ | | NEXTREG n,n' || E || Immediate || Immediate || - - - - - - || 20 || HwNextReg_n:=n' | ||
+ | |- | ||
+ | | OUTINB || E || - || - || ? ? ? ? ? ? || 16 || out(BC,HL*); HL++ | ||
+ | |- | ||
+ | | PIXELAD || E || - || - || - - - - - - || 8 || HL:=$4000+((D&$C0)<<5)+((D&$07)<<8)+((D&$38)<<2)+(E>>3) | ||
+ | |- | ||
+ | | PIXELDN || E || - || - || - - - - - - || 8 || if(HL&$0700!=$0700) HL+=256; else if(HL&$e0!=$e0) HL:=HL&$F8FF+$20; else HL:=HL&$F81F+$0800 | ||
+ | |- | ||
+ | | PUSH nn || E || Immediate || - || - - - - - - || 23 || SP-=2; SP*:=nn | ||
+ | |- | ||
+ | | SETAE || E || - || - || - - - - - - || 8 || A:=unsigned($80)>>(E&7) | ||
+ | |- | ||
+ | | SWAPNIB || E || - || - || - - - - - - || 8 || A:=A[3210]<<4 OR A[7654]>>4 | ||
+ | |- | ||
+ | | TEST n || E || Immediate || - || S ? P S S S || 11 || A&n? | ||
+ | |- | ||
+ | |} |
Latest revision as of 16:50, 20 January 2025
In this table only the Z80Next CPU instructions are listed. This is an extract from the table of all instructions: Z80_Instruction_Table_NoSemantic.
Mnemonic | Status | Addressing Mode 1 | Addressing Mode 2 | Flags: C N PV H Z S | T-States | Summary |
---|---|---|---|---|---|---|
ADD HL/DE/BC, A | E | Register | Register | ? - - - - - | 8 | rr+=unsigned A |
ADD HL/DE/BC, nn | E | Register | Immediate | - - - - - - | 16 | rr+=nn |
BRLC DE,B | E | - | - | - - - - - - | 8 | DE:=DE<<(B&15) OR DE>>(16-B&15) |
BSLA DE,B | E | - | - | - - - - - - | 8 | DE:=DE<<(B&31) |
BSRA DE,B | E | - | - | - - - - - - | 8 | DE:=signed(DE)>>(B&31) |
BSRF DE,B | E | - | - | - - - - - - | 8 | DE:=~(unsigned(~DE)>>(B&31)) |
BSRL DE,B | E | - | - | - - - - - - | 8 | DE:=unsigned(DE)>>(B&31) |
JP (C) | E | Register | - | ? ? ? ? ? ? | 13 | PC:=PC&$C000+IN(C)<<6 |
LDDRX | E | - | - | - - - - - - | 21/16 | do LDDX while(BC>0) |
LDDX | E | - | - | - - - - - - | 16 | {if HL*!=A DE*:=HL*;} DE++; HL--; BC-- |
LDIRX | E | - | - | - - - - - - | 21/16 | do LDIX while(BC>0) |
LDIX | E | - | - | - - - - - - | 16 | {if HL*!=A DE*:=HL*;} DE++; HL++; BC-- |
LDPIRX | E | - | - | - - - - - - | 21/16 | do{t:=(HL&$FFF8+E&7)*; {if t!=A DE*:=t;} DE++; BC--}while(BC>0) |
LDWS | E | - | - | - 0 ! S S S | 14 | DE*:=HL*; INC L; INC D; |
MIRROR A | E | Register | - | - - - - - - | 8 | A[76543210]:=A[01234567] |
MUL d,e | E | - | - | - - - - - - | 8 | DE:=D*E |
NEXTREG n, A | E | Immediate | Accumulator | - - - - - - | 17 | HwNextReg_n:=A |
NEXTREG n,n' | E | Immediate | Immediate | - - - - - - | 20 | HwNextReg_n:=n' |
OUTINB | E | - | - | ? ? ? ? ? ? | 16 | out(BC,HL*); HL++ |
PIXELAD | E | - | - | - - - - - - | 8 | HL:=$4000+((D&$C0)<<5)+((D&$07)<<8)+((D&$38)<<2)+(E>>3) |
PIXELDN | E | - | - | - - - - - - | 8 | if(HL&$0700!=$0700) HL+=256; else if(HL&$e0!=$e0) HL:=HL&$F8FF+$20; else HL:=HL&$F81F+$0800 |
PUSH nn | E | Immediate | - | - - - - - - | 23 | SP-=2; SP*:=nn |
SETAE | E | - | - | - - - - - - | 8 | A:=unsigned($80)>>(E&7) |
SWAPNIB | E | - | - | - - - - - - | 8 | A:=A[3210]<<4 OR A[7654]>>4 |
TEST n | E | Immediate | - | S ? P S S S | 11 | A&n? |