ASSEMBLEUR

 

 
COURS D'ASM 68000
(par le Féroce Lapin)

retour au VOLUME 1


SHIZUKA a le plaisir de vous présenter cette table des cycles du 68000
réalisée en deux portions de soirées avec les aides appréciables de:

craft2 ( stedi )
disque dur ( ouaaaah la vitesse )
"guide des instructions du 68000 , vol 2 de NACHTMANN chez PUBLITRONIC "

merci de diffuser cette table sans modifier l'en tête

calcul de l'adresse effective

                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 et 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+



+ = rajouter le temps de calcul de l'adresse effective
& = raouter 2 périodes d horloge pour les modes an dn et immédiat
* = durée max


                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+

+ = rajouter le temps de calcul de l'adresse effective


                registre        mémoire

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+

+ = rajouter le temps de calcul de l'adresse effective


                   registres      memoire

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


+ = rajouter le temps de calcul de l'adresse effective
n est le nombre de rotations ou de décalages successifs

          dynamique     dynamique       statique        statique
          registre      mmemoire        registre        memoire

bchg.b        -            8+              -              12+
bchg.l        8*           -               12*            -
bclr.b        -            8+              -              12+
bclr.l        10*          -               14*            -
bset.b        -            8+              -              12+
bset.l        8*           -               12*            -
btst.b        -            4+              -              8+
btst.l        6            -               10             -


+ = rajouter le temps de calcul de l'adresse effective
* = durée max


              branchement       pas de
              effectué          branchement

bcc.s              10             8
bcc.l              10             12
bra.s              10             -
bra.l              10             -
bsr.s              18             -
bsr.l              18             -
dbcc cc=1          -              12
dbcc cc=0          10             14




         (an)  (an)+  -(an)   16(an) d8(an,xi)  abs.w  abs.l d16(pc) d8(pc,xi)

jmp        8      -     -       10      14        10      12     10     14      
jsr        16     -     -       18      22        18      20     18     22
lea        4      -     -       8       12        8       12     8      12
pea        12     -     -       16      20        16      20     16     20
movem.w    12+4n  12+4n -       16+4n   18+4n     16+4n   20+4n  16+4n  18+4n
(m->r)       
movem.l    12+8n  12+8n -       16+8n   18+8n     16+8n   20+8n  16+8n  18+8n
(m->r)
movem.w    8+4n   -     8+4n    12+4n   14+4n     12+4n   16+4n  -      -
(r->m)
movem.l    8+8n   -     8+8n     12+8n  14+8n     12+8n   16+8n  -      -
(r->m)


n est le nombre de transferts de registra à effectuer


             op dn,dn      op m,m

addx.b          4            18
addx.w          4            18
addx.l          8            30
cmpm.b          -            12
cmpm.w          -            12
cmpm.l          -            20
subx.b          4            18
subx.w          4            18
subx.l          8            30
abcd            6            18
sbcd            6            18



                68000           68000
                r->m            m->r

movep.w          16               16
movep.l          24               24



                        68000           68000
                        registre        mémoire

andi to ccr                20              -
andi to sr                 20              -
chk ( sans trap )          10              -
eori to ccr                20              -
eori to sr                 20              -
exg                        6               -
ext                        4               -
link                       16              -
move to ccr                12              12&
move to sr                 12              12&
move from sr               6               8&
move usp                   4               -
nop                        4               -
ori to ccr                 20              -
ori to sr                  20              -
reset                      132             -
rte                        20              -
rtr                        20              -
rts                        16              -
stop                       4               -
swap                       4               -
trapv ( sans trap )        4               -
unlk                       12              -

& = rajouter le temps de calcul de l'adresse effective


                           68000

erreur adresse             50
erreur de bus              50
instruction chk            44+*
instruction illegal        34
interruption               44#
violation de privilège     34
trace                      34
trap                       38
trapvs                     34


+ rajouter l temps de calcul de l'adresse effective
* durée max
# 4 périodes d'horloge incluses pour le cycle d'interruption