Memory contention - redcode/ZXSpectrum GitHub Wiki
Assembly |
T-states |
Prefix M1 |
M1 |
M2 |
M3 |
M4 |
M5 |
ld J,K |
4 |
|
f(pc) |
|
|
|
|
ld O,P |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
ld J,BYTE |
43 |
|
f(pc) |
a(pc+1) |
|
|
|
ld O,BYTE |
443 |
f(pc) |
f(pc+1) |
a(pc+2) |
|
|
|
ld J,(hl) |
43 |
|
f(pc) |
r(hl) |
|
|
|
ld J,(XY+OFFSET) |
44353 |
f(pc) |
f(pc+1) |
a(pc+2) |
%:5 |
r(EA) |
|
ld (hl),K |
43 |
|
f(pc) |
w(hl) |
|
|
|
ld (XY+OFFSET),K |
44353 |
f(pc) |
f(pc+1) |
a(pc+2) |
%:5 |
w(EA) |
|
ld (hl),BYTE |
433 |
|
f(pc) |
r(pc+1) |
w(hl) |
|
|
ld (XY+OFFSET),BYTE |
44353 |
f(pc) |
f(pc+1) |
a(pc+2) |
a(pc+3):2 |
w(EA) |
|
ld a,(bc) |
3 |
|
f(pc) |
r(bc) |
|
|
|
ld a,(de) |
3 |
|
f(pc) |
r(de) |
|
|
|
ld a,(WORD) |
4333 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
r(WORD) |
|
ld (bc),a |
43 |
|
f(pc) |
w(bc) |
|
|
|
ld (de),a |
43 |
|
f(pc) |
w(de) |
|
|
|
ld (WORD),a |
4333 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
w(WORD) |
|
ld a,i |
45 |
f(pc) |
f(pc):1 |
|
|
|
|
ld a,r |
45 |
f(pc) |
f(pc):1 |
|
|
|
|
ld i,a |
45 |
f(pc) |
f(pc):1 |
|
|
|
|
ld r,a |
45 |
f(pc) |
f(pc):1 |
|
|
|
|
ld SS,WORD |
433 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
|
|
ld XY,WORD |
4433 |
f(pc) |
f(pc+1) |
a(pc+2) |
a(pc+3) |
|
|
ld hl,(WORD) |
43333 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
r(WORD) |
r(WORD+1) |
ld SS,(WORD) |
443333 |
f(pc) |
f(pc+1) |
a(pc+2) |
a(pc+3) |
r(WORD) |
r(WORD+1) |
ld XY,(WORD) |
443333 |
f(pc) |
f(pc+1) |
a(pc+2) |
a(pc+3) |
r(WORD) |
r(WORD+1) |
ld (WORD),hl |
43333 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
w(WORD) |
w(WORD+1) |
ld (WORD),SS |
443333 |
f(pc) |
f(pc+1) |
a(pc+2) |
a(pc+3) |
w(WORD) |
w(WORD+1) |
ld (WORD),XY |
443333 |
f(pc) |
f(pc+1) |
a(pc+2) |
a(pc+3) |
w(WORD) |
w(WORD+1) |
ld sp,hl |
6 |
|
f(pc):2 |
|
|
|
|
ld sp,XY |
46 |
f(pc) |
f(pc+1):2 |
|
|
|
|
push TT |
533 |
|
f(pc):1 |
w(sp-1) |
w(sp-2) |
|
|
push XY |
4533 |
f(pc) |
f(pc+1):1 |
w(sp-1) |
w(sp-2) |
|
|
pop TT |
433 |
|
f(pc) |
r(sp) |
r(sp+1) |
|
|
pop XY |
4433 |
f(pc) |
f(pc+1) |
r(sp) |
r(sp+1) |
|
|
ex de,hl |
4 |
|
f(pc) |
|
|
|
|
ex af,af' |
4 |
|
f(pc) |
|
|
|
|
exx |
4 |
|
f(pc) |
|
|
|
|
ex (sp),hl |
43435 |
|
f(pc) |
r(sp) |
r(sp+1):1 |
w(sp+1) |
w(sp):2 |
ex (sp),XY |
443435 |
f(pc) |
f(pc+1) |
r(sp) |
r(sp+1):1 |
w(sp+1) |
w(sp):2 |
ldX |
4435 |
f(pc) |
f(pc+1) |
r(hl) |
w(de):2 |
|
|
ldXr |
4435[5] |
f(pc) |
f(pc+1) |
r(hl) |
w(de):2 |
[%:5] |
|
cpX |
4435 |
f(pc) |
f(pc+1) |
r(hl) |
%:5 |
|
|
cpXr |
4435[5] |
f(pc) |
f(pc+1) |
r(hl) |
%:5 |
[%:5] |
|
U [a,]K |
4 |
|
f(pc) |
|
|
|
|
U [a,]P |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
U [a,]BYTE |
43 |
|
f(pc) |
a(pc+1) |
|
|
|
U [a,](hl) |
43 |
|
f(pc) |
r(hl) |
|
|
|
U [a,](XY+OFFSET) |
44353 |
f(pc) |
f(pc+1) |
a(pc+2) |
%:5 |
r(EA) |
|
V J |
4 |
|
f(pc) |
|
|
|
|
V O |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
V (hl) |
443 |
|
f(pc) |
r(hl):1 |
write(hl) |
|
|
V (XY+OFFSET) |
443543 |
f(pc) |
f(pc+1) |
a(pc+2) |
%:5 |
r(EA):1 |
w(EA) |
daa |
4 |
|
f(pc) |
|
|
|
|
cpl |
4 |
|
f(pc) |
|
|
|
|
neg |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
ccf |
4 |
|
f(pc) |
|
|
|
|
scf |
4 |
|
f(pc) |
|
|
|
|
nop |
4 |
|
f(pc) |
|
|
|
|
halt |
4 |
|
f(pc) |
|
|
|
|
di |
4 |
|
f(pc) |
|
|
|
|
ei |
4 |
|
f(pc) |
|
|
|
|
im 0 |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
im 1 |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
im 2 |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
add hl,SS |
443 |
|
f(pc) |
%:4 |
%:3 |
|
|
adc hl,SS |
4443 |
f(pc) |
f(pc+1) |
%:4 |
%:3 |
|
|
sbc hl,SS |
4443 |
f(pc) |
f(pc+1) |
%:4 |
%:3 |
|
|
add XY,WW |
4443 |
f(pc) |
f(pc+1) |
%:4 |
%:3 |
|
|
inc SS |
6 |
|
f(pc):2 |
|
|
|
|
inc XY |
46 |
f(pc) |
f(pc+1):2 |
|
|
|
|
dec SS |
6 |
|
f(pc):2 |
|
|
|
|
dec XY |
46 |
f(pc) |
f(pc+1):2 |
|
|
|
|
rlca |
4 |
|
f(pc) |
|
|
|
|
rla |
4 |
|
f(pc) |
|
|
|
|
rrca |
4 |
|
f(pc) |
|
|
|
|
rra |
4 |
|
f(pc) |
|
|
|
|
G K |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
G (hl) |
4443 |
f(pc) |
f(pc+1) |
r(hl):1 |
w(hl) |
|
|
rld |
44343 |
f(pc) |
f(pc+1) |
r(hl) |
%:4 |
w(hl) |
|
rrd |
44343 |
f(pc) |
f(pc+1) |
r(hl) |
%:4 |
w(hl) |
|
bit N,K |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
bit N,(hl) |
444 |
f(pc) |
f(pc+1) |
r(hl):1 |
|
|
|
M N,K |
44 |
f(pc) |
f(pc+1) |
|
|
|
|
M N,(hl) |
4443 |
f(pc) |
f(pc+1) |
r(hl):1 |
w(hl) |
|
|
jp WORD |
433 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
|
|
jp Z,WORD |
433 |
|
f(pc) |
a(pc+1) |
a(pc+2) |
|
|
jr OFFSET |
435 |
|
f(pc) |
a(pc+1) |
%:5 |
|
|
jr Z,OFFSET |
43[5] |
|
f(pc) |
a(pc+1) |
[%:5] |
|
|
jp (hl) |
4 |
|
f(pc) |
|
|
|
|
jp (XY) |
44 |
|
f(pc) |
|
|
|
|
djnz OFFSET |
53[5] |
|
f(pc):1 |
a(pc+1) |
[%:5] |
|
|
call WORD |
43433 |
|
f(pc) |
a(pc+1) |
a(pc+2):1 |
w(sp-1) |
w(sp-2) |
call Z,WORD |
433/43433 |
|
f(pc) |
a(pc+1) |
a(pc+2)[:1] |
[w(sp-1)] |
[w(sp-2)] |
ret |
433 |
|
f(pc) |
r(sp) |
r(sp+1) |
|
|
ret Z |
5[33] |
|
f(pc):1 |
[read(sp)] |
[r(sp+1)] |
|
|
reti/retn |
4433 |
f(pc) |
f(pc+1) |
r(sp) |
r(sp+1) |
|
|
rst N |
533 |
|
f(pc):1 |
w(sp-1) |
w(sp-2) |
|
|
in a,(BYTE) |
434 |
|
f(pc) |
a(pc+1) |
i((a<<8)|BYTE) |
|
|
in J,(c) |
444 |
f(pc) |
f(pc+1) |
i(bc) |
|
|
|
in (c) |
444 |
f(pc) |
f(pc+1) |
i(bc) |
|
|
|
inX |
4543 |
f(pc) |
f(pc+1):1 |
i(bc) |
w(hl) |
|
|
inXr |
4543[5] |
f(pc) |
f(pc+1):1 |
i(bc) |
w(hl) |
[%:5] |
|
out (BYTE),a |
434 |
|
f(pc) |
a(pc+1) |
o((a<<8)|BYTE) |
|
|
out (c),J |
444 |
f(pc) |
f(pc+1) |
o(bc) |
|
|
|
out (c),0 |
444 |
f(pc) |
f(pc+1) |
o(bc) |
|
|
|
outX |
4534 |
f(pc) |
f(pc+1):1 |
r(hl) |
o(bc) |
|
|
otXr |
4534[5] |
f(pc) |
f(pc+1):1 |
r(hl) |
o(bc) |
[%:5] |
|