CYCLES.TXT

From Atari Wiki
Revision as of 14:36, 16 December 2023 by Olivier.jan (talk | contribs)
Jump to navigation Jump to search
SHIZUKA is pleased to present this 68000 cycle table
created in two evening sessions with the valuable help of:

craft2 (stedi)
hard drive (wow, the speed)
"68000 instruction guide, vol 2 by NACHTMANN at PUBLITRONIC"

please distribute this table without modifying the header

effective address calculation

                b/w     l

dn              0       0
an              0       0
(an)            4       8
(an)+           4       8
-(an)           6       10
d16(an)         8       12
d8(an,xi)       10      14
abs.w           8       12
abs.l           12      16
d16(pc)         8       12
d8(pc,x1)       10      14
imm             4       8


move.b and move.w

            dn   an   (an)   (an)+   -(an)   d16(an)  d8(an,xi)   abs.w   abs.l 
dn           4    4    8      8        8       12       14         12      16
an           4    4    8      8        8       12       14         12      16
(an)         8    8    12     12       12      16       18         16      20
(an)+        8    8    12     12       12      16       18         16      20
-(an)        10   10   14     14       14      18       20         18      22
d16(an)      12   12   16     16       16      20       22         20      24
d8(an,xi)    14   14   18     18       18      22       24         22      26
abs.w        12   12   16     16       16      20       22         20      24
abs.l        16   16   20     20       20      24       26         24      28
d16(pc)      12   12   16     16       16      20       22         20      24
d8(pc,x1)    14   14   18     18       18      22       24         22      26
imm          8    8    12     12       12      16       18         16      20

move.l

            dn   an   (an)   (an)+   -(an)   d16(an)  d8(an,xi)   abs.w   abs.l 
dn           4    4    12     12       12      16       18         16      20
an           4    4    12     12       12      16       18         16      20
(an)         12   12   20     20       20      24       26         24      28
(an)+        12   12   20     20       20      24       26         24      28
-(an)        14   14   22     22       22      26       28         26      30
d16(an)      16   16   24     24       24      28       30         28      32 
d8(an,xi)    18   18   26     26       26      30       32         30      34
abs.w        16   16   24     24       24      28       30         28      32
abs.l        20   20   28     28       28      32       34         32      36
d16(pc)      16   16   24     24       24      28       30         28      32
d8(pc,x1)    18   18   26     26       26      30       32         30      34
imm          12   12   20     20       20      24       26         24      28



                op(ea),an       op(ea),dn       op dn,(m)

add.b           -               4+              8+
add.w           8+              4+              8+
add.l           6+&             6+&             12+
and.b           -               4+              8+
and.w           -               4+              8+
and.l           -               6+&             12+
cmp.b           -               4+              -
cmp.w           6+              4+              -
cmp.l           6+              6+              -
divs            -               158+*           -
divu            -               140+*           -
eor.b           -               4+              8+
eor.w           -               4+              8+
eor.l           -               8+              12+
muls            -               70+*            -
mulu            -               70+*            -
or.b            -               4+              8+
or.w            -               4+              8+
or.l            -               6+&             12+
sub.b           -               4+              8+
sub.w           8+              4+              8+
sub.l           6+&             6+&             12+



+ = add the time for calculating the effective address
& = add 2 clock cycles for modes an dn and immediate
* = maximum duration


                op #,dn         op #,an         op #,m

addi.b          8               -               12+
addi.w          8               -               12+
addi.l          16              -               20+
addq.b          4               -               8+
addq.w          4               8               8+
addq.l          8               8               12+
andi.b          8               -               12+
andi.w          8               -               12+
andi.l          16              -               20+
cmpi.b          8               -               8+
cmpi.w          8               -               8+
cmpi.l          14              -               12+
eori.b          8               -               12+
eori.w          8               -               12+
eori.l          16              -               20+
moveq           4               -               -
ori.b           8               -               12+
ori.w           8               -               12+
ori.l           16              -               20+
subi.b          8               -               12+
subi.w          8               -               12+
subi.l          16              -               20+
subq.b          4               -               8+
subq.w          4               8               8+
subq.l          8               8               12+

+ = add the time for calculating the effective address


                register        memory

clr.b           4               8+
clr.w           4               8+
clr.l           6               12+
nbcd            6               8+
neg.b           4               8+
neg.w           4               8+
neg.l           6               12+
negx.b          4               8+
negx.w          4               8+
negx.l          6               12+
not.b           4               8+
not.w           4               8+
not.l           6               12+
scc (cc=0)      4               8+
scc (cc=1)      6               8+
tas             4               10+
tst.b           4               4+
tst.w           4               4+
tst.l           4               4+

+ = add the time for calculating the effective address


                   registers     memory

asr.b & asl.b    6+2n
asr.w & asl.w    6+2n            8+
asr.l & asl.l    8+2n
lsr.b & lsl.b    6+2n
lsr.w & lsl.w    6+2n            8+
lsr.l & lsl.l    8+2n
ror.b & rol.b    6+2n
ror.w & rol.w    6+2n            8+
ror.l & rol.l    8+2n
roxr.b & roxl.b  6+2n
roxr.w & roxl.w  6+2n            8+
roxr.l & roxl.l  8+2n