?otorola inc., 1993 m68000 8-/16-/32-bit microprocessors user? manual      motorola reserves the right to make changes without further notice to any products herein.  motorola makes no warranty, representation or guarantee regarding  the suitability of its products for any particular purpose, nor does motorola assume any liability arising out of the application or use of any product or circuit, and  specifically disclaims any and all liability, including without limitation consequential or incidental damages.  "typical" parameters can and do vary in different  applications.  all operating parameters, including "typicals" must be validated for each customer application by customer's technical experts.  motorola does not  convey any license under its patent rights nor the rights of others.  motorola products are not designed, intended, or authorized for use as components in systems  intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the motorola  product could create a situation where personal injury or death may occur.  should buyer purchase or use motorola products for any such unintended or  unauthorized application, buyer shall indemnify and hold motorola and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims,  costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such  unintended or unauthorized use, even if such claim alleges that motorola was negligent regarding the design or manufacture of the part. motorola and      are  registered trademarks of motorola, inc. motorola, inc. is an equal opportunity/affirmative action employer.  motorola ninth edition
 implied addressing 1   implied register ea = sr, usp, ssp, pc, vbr, sfc, dfc sr,usp,ssp,pc, vbr, sfc,dfc notes:    1. the vbr, sfc, and dfc apply to the mc68010 only ea = effective address dn = data register an = address register ( ) = contents of pc = program counter d 8 = 8-bit offset (displacement) d 16 = 16-bit offset (displacement) n = 1 for byte, 2 for word, and 4 for long word. if an is the stack pointer and the operand size is byte, n = 2 to keep the stack pointer on a word boundary. ? = replaces xn = address or data register used as index register sr = status register usp = user stack pointer ssp = supervisor stack pointer cp = program counter vbr = vector base register 2.3 data organization in registers the eight data registers support data operands of 1, 8, 16, or 32 bits. the seven address registers and the active stack pointer support address operands of 32 bits. 2.3.1 data registers each data register is 32 bits wide. byte operands occupy the low-order 8 bits, word operands the low-order 16 bits, and long-word operands, the entire 32 bits. the least significant bit is addressed as bit zero; the most significant bit is addressed as bit 31.
   operand data format: byte (b), word (w), long (l), single (s), double (d), extended (x), or packed (p). fpm   one of eight floating-point data registers (always specifies the source register) fpn   one of eight floating-point data registers (always specifies the destination register) notation for subfields and qualifiers:  of    selects a single bit of the operand {offset:width}   selects a bit field ()   the contents of the referenced location 10   the operand is bina ry-coded decimal, operations are performed in decimal ()   the register indirect operator ?)   indicates that the operand register points to the memory ()+   location of the instruction operand?he optional mode qualifiers are ? +, (d), and (d, ix) #xxx or #   immediate data that follows the instruction word(s) notations for operations that have two operands, written   , where  is one of the following: ?   the source operand is moved to the destination operand ?   the two operands are exchanged +   the operands are added     the destination operand is subtracted from the source operand    the operands are multiplied ?   the source operand is divided by the destination operand <   relational test, true if source operand is less than destination operand >   relational test, true if source operand is greater than destination operand v   logical or ?   logical exclusive or l   logical and
   the operand is logically complemented sign-extended   the operand is sign-extended, all bits of the upper portion are made equal to the high-order bit of the lower portion tested   the operand is compared to zero and the condition codes are set appropriately notation for other operations: trap   equivalent to format/offset word  ?  (ssp); ssp?  ? ssp; pc  ?  (ssp); ssp?  ?  ssp; sr  ?  (ssp); ssp?  ?  ssp; (vector)  ?  pc stop   enter the stopped state, waiting for interrupts if  then   the condition is tested. if true, the operations after "then"  else are performed. if the condition is false and the optional  "else" clause is present, the operations after "else" are performed. if the condition is false and else is omitted, the instruction performs no operation. refer to the bcc instruction description as an example.
,dn add dn, adda source + destination  ?  destination adda ,an addi immediate data + destination   ?  destination addi # , addq immediate data + destination  ?  destination addq # , addx source + destination + x  ?  destination addx dy, dx addx ?ay), ?ax) and source  l  destination  ?  destination and ,dn and dn, andi immediate data  l  destination  ?  destination andi # ,  andi to ccr source  l  ccr  ?  ccr andi # , ccr andi to sr if  supervisor state then source  l  sr  ?  sr else trap andi # , sr asl, asr destination shifted by   ?  destination asd dx,dy asd # ,dy asd  bcc if (condition true) then pc + d  ?  pc bcc  bchg ~  ( of destination)  ?  z; ~ ( of destination)  ?   of destination bchg dn, bchg # , bclr ~  ( of destination)  ?  z; 0  ?   of destination bclr dn, bclr # , bkpt run breakpoint acknowledge cycle; trap as illegal instruction bkpt #  bra pc + d  ?  pc bra  bset ~  ( of destination)  ?  z; 1  ?   of destination bset dn, bset # , bsr sp ?4  ?  sp; pc  ?  (sp); pc + d  ?  pc bsr  btst    ( of destination)  ?  z; btst dn, btst # , chk if dn < 0 or dn >  source then trap chk ,dn clr 0  ?  destination clr  cmp destination?ource  ?  cc cmp ,dn cmpa destination?ource cmpa ,an cmpi destination ?mmediate data cmpi # , cmpm destination?ource  ?  cc cmpm (ay)+,  (ax)+ dbcc if  condition false then (dn ?1  ?  dn; if dn  1  ? then pc + d  ?  pc) dbcc dn,
,dn 32/16  ?  16r:16q divu destination/source  ?  destination divu.w ,dn 32/16  ?  16r:16q eor source  ?  destination  ?  destination eor dn, eori immediate data  ?  destination  ?  destination eori # , eori to ccr source  ?  ccr  ?  ccr eori # ,ccr eori to sr if  supervisor state then source  ? sr  ?  sr else trap eori # ,sr exg rx  ?  ry exg dx,dy exg ax,ay exg dx,ay exg ay,dx ext destination sign-extended  ?  destination ext.w dn extend byte to word ext.l dn extend word to long word illegal ssp ?2  ?  ssp; vector offset  ?  (ssp); ssp ?4  ?  ssp; pc  ?  (ssp); ssp ?2  ?  ssp; sr  ?  (ssp); illegal instruction vector address  ?  pc illegal jmp destination address  ?  pc jmp  jsr sp ?4  ?  sp; pc  ?  (sp) destination address  ?  pc jsr  lea    ?  an lea ,an link sp   4  ?  sp; an  ?  (sp) sp  ?  an, sp + d  ?  sp link an, #  lsl,lsr destination shifted by   ?  destination lsd 1  dx,dy lsd 1  # ,dy lsd 1   move source  ?  destination move , movea source  ?  destination movea ,an move from ccr ccr  ?  destination move ccr, move  to ccr source  ?  ccr move ,ccr move from sr sr  ?  destination if supervisor state then sr  ?  destination else trap (mc68010 only) move sr, move to sr if  supervisor state then source  ?  sr else trap move ,sr
 movem ,register list movep source  ?  destination movep dx,(d,ay) movep (d,ay),dx moveq immediate data  ?  destination moveq # ,dn moves if  supervisor state then rn  ?  destination [dfc] or source [sfc]  ?  rn else trap moves rn, moves ,rn muls source    destination  ?  destination muls.w ,dn 16 x 16  ?  32 mulu source    destination  ?  destination mulu.w ,dn 16 x 16  ?  32 nbcd 0    (destination 10 ) ?x  ?  destination nbcd  neg 0 ?(destination)  ?  destination neg  negx 0    (destination) ?x  ?  destination negx  nop none nop not ~destination  ?  destination not  or source v destination  ?  destination or  ,dn or dn, ori immediate data v destination  ?  destination ori # , ori to ccr source v ccr  ?  ccr ori # ,ccr ori to sr if  supervisor state then source v sr  ?  sr else trap ori # ,sr pea sp ?4  ?  sp;    ?  (sp) pea  reset if  supervisor state then assert  reset  line else trap reset rol, ror destination rotated by   ?  destination rod 1  rx,dy rod 1  # ,dy rod 1   roxl, roxr destination rotated with x by   ?  destination roxd 1  dx,dy roxd 1 #  ,dy roxd 1   rtd (sp)  ?  pc; sp + 4 + d  ?  sp rtd #
 stop if  supervisor state then immediate data  ?  sr; stop else trap stop #  sub destination ?source  ?  destination sub ,dn sub dn, suba destination ?source  ?  destination suba ,an subi destination ?immediate data  ?  destination subi # , subq destination ?immediate data   ?  destination subq # , subx destination ?source ?x  ?  destination subx dx,dy subx ?ax),?ay) swap register [31:16]  ?  register [15:0] swap dn tas destination tested  ?  condition codes; 1  ?  bit 7 of destination tas  trap ssp ?2  ?  ssp; format/offset  ?  (ssp); ssp ?4  ?  ssp; pc  ?  (ssp); ssp?  ?  ssp; sr  ?  (ssp); vector address  ?  pc trap #  trapv if v  then trap trapv tst destination tested  ?  condition codes tst  unlk an  ?  sp; (sp)  ?  an; sp + 4  ?  sp unlk an note: d is direction, l or r.
 program counter indirect with index immediate 14 (3/0) 8 (2/0) 18 (4/0) 8 (2/0) 26 (6/0) 16 (4/0) *the size of the index register (xn) does not affect execution time. 7.2 move instruction execution times tables 7-2, 7-3, and 7-4 list the numbers of clock periods for the move instructions. the totals include instruction fetch, operand reads, and operand writes. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. table 7-2. move byte instruction execution times destination source dn an (an) (an)+ ?an) (d 16 , an) (d 8 , an, xn)* (xxx).w (xxx).l dn an (an) 8 (2/0) 8 (2/0) 12 (3/0) 8 (2/0) 8 (2/0) 12 (3/0) 12 (2/1) 12 (2/1) 16 (3/1) 12 (2/1) 12 (2/1) 16 (3/1) 12 (2/1) 12 (2/1) 16 (3/1) 20 (4/1) 20 (4/1) 24 (5/1) 22 (4/1) 22 (4/1) 26 (5/1) 20 (4/1) 20 (4/1) 24 (5/1) 28 (6/1) 28 (6/1) 32 (7/1) (an)+ ?an) (d 16 , an) 12 (3/0) 14 (3/0) 20 (5/0) 12 (3/0) 14 (3/0) 20 (5/0) 16 (3/1) 18 (3/1) 24 (5/1) 16 (3/1) 18 (3/1) 24 (5/1) 16 (3/1) 18 (3/1) 24 (5/1) 24 (5/1) 26 (5/1) 32 (7/1) 26 (5/1) 28 (5/1) 34 (7/1) 24 (5/1) 26 (5/1) 32 (7/1) 32 (7/1) 34 (7/1) 40 (9/1) (d 8 , an, xn)* (xxx).w (xxx).l 22 (5/0) 20 (5/0) 28 (7/0) 22 (5/0) 20 (5/0) 28 (7/0) 26 (5/1) 24 (5/1) 32 (7/1) 26 (5/1) 24 (5/1) 32 (7/1) 26 (5/1) 24 (5/1) 32 (7/1) 34 (7/1) 32 (7/1) 40 (9/1) 36 (7/1) 34 (7/1) 42 (9/1) 34 (7/1) 32 (7/1) 40 (9/1) 42 (9/1) 40 (9/1) 48 (11/1) (d 16 , pc) (d 8 , pc, xn)* # 20 (5/0) 22 (5/0) 16 (4/0) 20 (5/0) 22 (5/0) 16 (4/0) 24 (5/1) 26 (5/1) 20 (4/1) 24 (5/1) 26 (5/1) 20 (4/1) 24 (5/1) 26 (5/1) 20 (4/1) 32 (7/1) 34 (7/1) 28 (6/1) 34 (7/1) 36 (7/1) 30 (6/1) 32 (7/1) 34 (7/1) 28 (6/1) 40 (9/1) 42 (9/1) 36 (8/1) *the size of the index register (xn) does not affect execution time.
 24 (6/0) 26 (6/0) 16 (4/0) 24 (6/0) 26 (6/0) 16 (4/0) 32 (6/2) 34 (6/2) 24 (4/2) 32 (6/2) 34 (6/2) 24 (4/2) 32 (6/2) 34 (6/2) 24 (4/2) 40 (8/2) 42 (8/2) 32 (6/2) 42 (8/2) 44 (8/2) 34 (6/2) 40 (8/2) 42 (8/2) 32 (6/2) 48 (10/2) 50 (10/2) 40 (8/2) *the size of the index register (xn) does not affect execution time. table 7-4. move long instruction execution times destination source dn an (an) (an)+ ?an) (d 16 , an) (d 8 , an, xn)* (xxx).w (xxx).l dn an (an) 8 (2/0) 8 (2/0) 24 (6/0) 8 (2/0) 8 (2/0) 24 (6/0) 24 (2/4) 24 (2/4) 40 (6/4) 24 (2/4) 24 (2/4) 40 (6/4) 24 (2/4) 24 (2/4) 40 (6/4) 32 (4/4) 32 (4/4) 48 (8/4) 34 (4/4) 34 (4/4) 50 (8/4) 32 (4/4) 32 (4/4) 48 (8/4) 40 (6/4) 40 (6/4) 56 (10/4) (an)+ ?an) (d 16 , an) 24 (6/0) 26 (6/0) 32 (8/0) 24 (6/0) 26 (6/0) 32 (8/0) 40 (6/4) 42 (6/4) 48 (8/4) 40 (6/4) 42 (6/4) 48 (8/4) 40 (6/4) 42 (6/4) 48 (8/4) 48 (8/4) 50 (8/4) 56 (10/4) 50 (8/4) 52 (8/4) 58 (10/4) 48 (8/4) 50 (8/4) 56 (10/4) 56 (10/4) 58 (10/4) 64 (12/4) (d 8 , an, xn)* (xxx).w (xxx).l 34 (8/0) 32 (8/0) 40 (10/0) 34 (8/0) 32 (8/0) 40 (10/0) 50 (8/4) 48 (8/4) 56 (10/4) 50 (8/4) 48 (8/4) 56 (10/4) 50 (8/4) 48 (8/4) 56 (10/4) 58 (10/4) 56 (10/4) 64 (12/4) 60 (10/4) 58 (10/4) 66 (12/4) 58 (10/4) 56 (10/4) 64 (12/4) 66 (12/4) 64 (12/4) 72 (14/4) (d 16 , pc) (d 8 , pc, xn)* # 32 (8/0) 34 (8/0) 24 (6/0) 32 (8/0) 34 (8/0) 24 (6/0) 48 (8/4) 50 (8/4) 40 (6/4) 48 (8/4) 50 (8/4) 40 (6/4) 48 (8/4) 50 (8/4) 40 (6/4) 56 (10/4) 58 (10/4) 48 (8/4) 58 (10/4) 60 (10/4) 50 (8/4) 56 (10/4) 58 (10/4) 48 (8/4) 64 (12/4) 66 (12/4) 56 (10/4) *the size of the index register (xn) does not affect execution time. 7.3 standard instruction execution times the numbers of clock periods shown in table 7-5 indicate the times required to perform the operations, store the results, and read the next instruction. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. the number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+).
, an op, dn op dn,  add/adda byte word long   12 (2/0)+ 10 (2/0)+** 8 (2/0)+ 8 (2/0)+ 10 (2/0)+** 12 (2/1)+ 16 (2/2)+ 24 (2/4)+ and byte word long       8 (2/0)+ 8 (2/0)+ 10 (2/0)+** 12 (2/1)+ 16 (2/2)+ 24 (2/4)+ cmp/cmpa byte word long   10 (2/0)+ 10 (2/0)+ 8 (2/0)+ 8 (2/0)+ 10 (2/0)+       divs divu         162 (2/0)+* 144 (2/0)+*     eor byte, word, long       8 (2/0)+*** 8 (2/0)+*** 12 (2/0)+*** 12 (2/1)+ 16 (2/2)+ 24 (2/4)+ muls mulu         74 (2/0)+* 74 (2/0)+*     or byte, word long       8 (2/0)+ 8 (2/0)+ 10 (2/0)+** 12 (2/1)+ 16 (2/2)+ 24 (2/4)+ sub byte, word long 12 (2/0)+ 10 (2/0)+** 8 (2/0)+ 8 (2/0)+ 10 (2/0)+** 12 (2/1)+ 16 (2/2)+ 24 (2/4)+ + add effective address calculation time. * indicates maximum base value added to word effective address time ** the base time of 10 clock periods is increased to 12 if the effective address mode is register direct or immediate (effective address time should also be added). *** only available effective address mode is data register direct. divs, divu   the divide algorithm used by the mc68008 provides less than 10% difference between the best- and worst-case timings. muls, mulu   the multiply algorithm requires 42+2n clocks where n is defined as: muls: n = tag the  with a zero as the msb; n is the resultant number of 10 or 01 patterns in the 17-bit source; i.e., worst case happens when the source is $5555. mulu: n = the number of ones in the  7.4 immediate instruction execution times the numbers of clock periods shown in table 7-6 include the times to fetch immediate operands, perform the operations, store the results, and read the next operation. the total number of clock periods, the number of read cycles, and the number of write cycles are
 program counter indirect with index immediate 10 (2/0) 4 (1/0) 14 (3/0) 8 (2/0) *the size of the index register (xn) does not affect execution time. 8.2 move instruction execution times tables 8-2 and 8-3 list the numbers of clock periods for the move instructions. the totals include instruction fetch, operand reads, and operand writes. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. table 8-2. move byte and word instruction execution times destination source dn an (an) (an)+ ?an) (d 16 , an) (d 8 , an, xn)* (xxx).w (xxx).l dn an (an) 4 (1/0) 4 (1/0) 8 (2/0) 4 (1/0) 4 (1/0) 8 (2/0) 8 (1/1) 8 (1/1) 12 (2/1) 8 (1/1) 8 (1/1) 12 (2/1) 8 (1/1) 8 (1/1) 12 (2/1) 12 (2/1) 12 (2/1) 16 (3/1) 14 (2/1) 14 (2/1) 18 (3/1) 12 (2/1) 12 (2/1) 16 (3/1) 16 (3/1) 16 (3/1) 20 (4/1) (an)+ ?an) (d 16 , an) 8 (2/0) 10 (2/0) 12 (3/0) 8 (2/0) 10 (2/0) 12 (3/0) 12 (2/1) 14 (2/1) 16 (3/1) 12 (2/1) 14 (2/1) 16 (3/1) 12 (2/1) 14 (2/1) 16 (3/1) 16 (3/1) 18 (3/1) 20 (4/1) 18 (3/1) 20 (3/1) 22 (4/1) 16 (3/1) 18 (3/1) 20 (4/1) 20 (4/1) 22 (4/1) 24 (5/1) (d 8 , an, xn)* (xxx).w (xxx).l 14 (3/0) 12 (3/0) 16 (4/0) 14 (3/0) 12 (3/0) 16 (4/0) 18 (3/1) 16 (3/1) 20 (4/1) 18 (3/1) 16 (3/1) 20 (4/1) 18 (3/1) 16 (3/1) 20 (4/1) 22 (4/1) 20 (4/1) 24 (5/1) 24 (4/1) 22 (4/1) 26 (5/1) 22 (4/1) 20 (4/1) 24 (5/1) 26 (5/1) 24 (5/1) 28 (6/1) (d 16 , pc) (d 8 , pc, xn)* # 12 (3/0) 14 (3/0) 8 (2/0) 12 (3/0) 14 (3/0) 8 (2/0) 16 (3/1) 18 (3/1) 12 (2/1) 16 (3/1) 18 (3/1) 12 (2/1) 16 (3/1) 18 (3/1) 12 (2/1) 20 (4/1) 22 (4/1) 16 (3/1) 22 (4/1) 24 (4/1) 18 (3/1) 20 (4/1) 22 (4/1) 16 (3/1) 24 (5/1) 26 (5/1) 20 (4/1) *the size of the index register (xn) does not affect execution time.
 16 (4/0) 18 (4/0) 12 (3/0) 16 (4/0) 18 (4/0) 12 (3/0) 24 (4/2) 26 (4/2) 20 (3/2) 24 (4/2) 26 (4/2) 20 (3/2) 24 (4/2) 26 (4/2) 20 (3/2) 28 (5/2) 30 (5/2) 24 (4/2) 30 (5/2) 32 (5/2) 26 (4/2) 28 (5/2) 30 (5/2) 24 (4/2) 32 (5/2) 34 (6/2) 28 (5/2) *the size of the index register (xn) does not affect execution time. 8.3 standard instruction execution times the numbers of clock periods shown in table 8-4 indicate the times required to perform the operations, store the results, and read the next instruction. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. the number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). in table 8-4, the following notation applies: an   address register operand dn   data register operand ea   an operand specified by an effective address m   memory effective address operand
, an? op, dn op dn,  add/adda byte, word 8 (1/0)+ 4 (1/0)+ 8 (1/1)+ long 6 (1/0)+** 6 (1/0)+** 12 (1/2)+ and byte, word   4 (1/0)+ 8 (1/1)+ long   6 (1/0)+** 12 (1/2)+ cmp/cmpa byte, word 6 (1/0)+ 4 (1/0)+   long 6 (1/0)+ 6 (1/0)+   divs     158 (1/0)+*   divu     140 (1/0)+*   eor byte, word   4 (1/0)*** 8 (1/1)+ long   8 (1/0)*** 12 (1/2)+ muls     70 (1/0)+*   mulu     70 (1/0)+*   or byte, word   4 (1/0)+ 8 (1/1)+ long   6 (1/0)+** 12 (1/2)+ sub byte, word 8 (1/0)+ 4 (1/0)+ 8 (1/1)+ long 6 (1/0)+** 6 (1/0)+** 12 (1/2)+ + add effective address calculation time. ? word or long only * indicates maximum basic value added to word effective address time ** the base time of six clock periods is increased to eight if the effective address mode is register direct or immediate (effective address time should also be added). *** only available effective address mode is data register direct. divs, divu   the divide algorithm used by the mc68000 provides less than 10% difference between the best- and worst-case timings. muls, mulu   the multiply algorithm requires 38+2n clocks where n is defined as: mulu: n = the number of ones in the  muls: n=concatenate the  with a zero as the lsb; n is the resultant number of 10 or 01 patterns in the 17-bit source; i.e., worst case happens when the source is $5555. 8.4 immediate instruction execution times the numbers of clock periods shown in table 8-5 include the times to fetch immediate operands, perform the operations, store the results, and read the next operation. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. the number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). in table 8-5, the following notation applies: #   immediate operand dn   data register operand an   address register operand m   memory operand
 program counter indirect with index immediate 10 (2/0) 4 (1/0)     14 (3/0) 8 (2/0)     *the size of the index register (xn) does not affect execution time. 9.2 move instruction execution times tables 9-2, 9-3, 9-4, and 9-5 list the numbers of clock periods for the move instructions. the totals include instruction fetch, operand reads, and operand writes. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format.
 12 (3/0) 14 (3/0) 8 (2/0) 12 (3/0) 14 (3/0) 8 (2/0) 16 (3/1) 18 (3/1) 12 (2/1) 16 (3/1) 18 (3/1) 12 (2/1) 16 (3/1) 18 (3/1) 12 (2/1) 20 (4/1) 22 (4/1) 16 (3/1) 22 (4/1) 24 (4/1) 18 (3/1) 20 (4/1) 22 (4/1) 16 (3/1) 24 (5/1) 26 (5/1) 20 (4/1) *the size of the index register (xn) does not affect execution time. table 9-3. move byte and word instruction loop mode execution times loop continued loop terminated valid count, cc false valid count, cc true expired count destination source (an) (an)+ ?an) (an) (an)+ ?an) (an) (an)+ ?an) dn an* (an) 10 (0/1) 10 (0/1) 14 (1/1) 10 (0/1) 10 (0/1) 14 (1/1)     16 (1/1) 18 (2/1) 18 (2/1) 20 (3/1) 18 (2/1) 18 (2/1) 20 (3/1)     22 (3/1) 16 (2/1) 16 (2/1) 18 (3/1) 16 (2/1) 16 (2/1) 18 (3/1)     20 (3/1) (an)+ ?an) 14 (1/1) 16 (1/1) 14 (1/1) 16 (1/1) 16 (1/1) 18 (1/1) 20 (3/1) 22 (3/1) 20 (3/1) 22 (3/1) 22 (3/1) 24 (3/1) 18 (3/1) 20 (3/1) 18 (3/1) 20 (3/1) 20 (3/1) 22 (3/1) *word only.
 16 (4/0) 18 (4/0) 12 (3/0) 16 (4/0) 18 (4/0) 12 (3/0) 24 (4/2) 26 (4/2) 20 (3/2) 24 (4/2) 26 (4/2) 20 (3/2) 24 (4/2) 26 (4/2) 20 (3/2) 28 (5/2) 30 (5/2) 24 (4/2) 30 (5/2) 32 (5/2) 26 (4/2) 28 (5/2) 30 (5/2) 24 (4/2) 32 (5/2) 34 (6/2) 28 (5/2) *the size of the index register (xn) does not affect execution time. table 9-5. move long instruction loop mode execution times loop continued loop terminated valid count, cc false valid count, cc true expired count destination source (an) (an)+ ?an) (an) (an)+ ?an) (an) (an)+ ?an) dn an (an) 14 (0/2) 14 (0/2) 22 (2/2) 14 (0/2) 14 (0/2) 22 (2/2)     24 (2/2) 20 (2/2) 20 (2/2) 28 (4/2) 20 (2/2) 20 (2/2) 28 (4/2)     30 (4/2) 18 (2/2) 18 (2/2) 24 (4/2) 18 (2/2) 18 (2/2) 24 (4/2)     26 (4/2) (an)+ ?an) 22 (2/2) 24 (2/2) 22 (2/2) 24 (2/2) 24 (2/2) 26 (2/2) 28 (4/2) 30 (4/2) 28 (4/2) 30 (4/2) 30 (4/2) 32 (4/2) 24 (4/2) 26 (4/2) 24 (4/2) 26 (4/2) 26 (4/2) 28 (4/2) 9.3 standard instruction execution times the numbers of clock periods shown in tables 9-6 and 9-7 indicate the times required to perform the operations, store the results, and read the next instruction. the total number of clock periods, the number of read cycles, and the number of write cycles are shown in the previously described format. the number of clock periods, the number of read cycles, and the number of write cycles, respectively, must be added to those of the effective address calculation where indicated by a plus sign (+). in tables 9-6 and 9-7, the following notation applies: an   address register operand sn   data register operand ea   an operand specified by an effective address m   memory effective address operand
, an*** op, dn op dn,  add/adda byte, word 8 (1/0)+ 4 (1/0)+ 8 (1/1)+ long 6 (1/0)+ 6 (1/0)+ 12 (1/2)+ and byte, word   4 (1/0)+ 8 (1/1)+ long   6 (1/0)+ 12 (1/2)+ cmp/cmpa byte, word 6 (1/0)+ 4 (1/0)+   long 6 (1/0)+ 6 (1/0)+   divs     122 (1/0)+   divu     108 (1/0)+   eor byte, word   4 (1/0)** 8 (1/1)+ long   6 (1/0)** 12 (1/2)+ muls/mulu     42 (1/0)+*    40 (1/0)*   or byte, word   4 (1/0)+ 8 (1/1)+ long   6 (1/0)+ 12 (1/2)+ sub/suba byte, word 8 (1/0)+ 4 (1/0)+ 8 (1/1)+ long 6 (1/0)+ 6 (1/0)+ 12 (1/2)+ + add effective address calculation time. * indicates maximum value. ** only available address mode is data register direct. *** word or long word only. table 9-7 standard instruction loop mode execution times loop continued loop terminated valid count cc false valid count cc true expired count instruction size op, an* op, dn op dn,  op, an* op, dn op dn,  op, an* op, dn op dn,  add byte, word 18 (1/0) 16 (1/0) 16 (1/1) 24 (3/0) 22 (3/0) 22 (3/1) 22 (3/0) 20 (3/0) 20 (3/1) long 22 (2/0) 22 (2/0) 24 (2/2) 28 (4/0) 28 (4/0) 30 (4/2) 26 (4/0) 26 (4/0) 28 (4/2) and byte, word ?6 (1/0) 16 (1/1) ?2 (3/0) 22 (3/1) ?0 (3/0) 20 (3/1) long ?2 (2/0) 24 (2/2) ?8 (4/0) 30 (4/2) ?6 (4/0) 28 (4/2) cmp byte, word 12 (1/0) 12 (1/0) ?8 (3/0) 18 (3/0) ?6 (3/0) 16 (4/0)   long 18 (2/0) 18 (2/0) ?4 (4/0) 24 (4/0) ?0 (4/0) 20 (4/0)   eor byte, word 16 (1/0) 22 (3/1) 20 (3/1) long 24 (2/2) 30 (4/2) 28 (4/2) or byte, word ?6 (1/0) 16 (1/0) ?2 (3/0) 22 (3/1) ?0 (3/0) 20 (3/1) long ?2 (2/0) 24 (2/2) ?8 (4/0) 30 (4/2) ?6 (4/0) 28 (4/2) sub byte, word 18 (1/0) 16 (1/0) 16 (1/1) 24 (3/0) 22 (3/0) 22 (3/1) 22 (3/0) 20 (3/0) 20 (3/1) long 22 (2/0) 20 (2/0) 24 (2/2) 28 (4/0) 26 (4/0) 30 (4/2) 26 (4/0) 24 (4/0) 28 (4/2) *word or long word only.  may be (an), (an)+, or ?an) only. add two clock periods to the table value if  is ?an).
 motorola m68000 8-/16-/32-bit microprocessors user's manual 10-3  table 10-1 summarizes maximum power dissipation and average junction temperature for the curve drawn in figure 10-1, using the minimum and maximum values of ambient temperature for different packages and substituting  q j c  for  q j a  (assuming good thermal management). table 10-2 provides the maximum power dissipation and average junction temperature assuming that no thermal management is applied (i.e., still air). note since the power dissipation curve shown in figure 10-1 is negatively sloped, power dissipation declines as ambient temperature increases.  therefore, maximum power dissipation occurs at the lowest rated ambient temperature, but the highest average junction temperature occurs at the maximum ambient temperature where  power dissipation is lowest .   power (p  ), watts d ambient temperature (t  ),  c a 2.2 2.0 1.8 1.6 1.4 1.2 1.0 -55 -40 0 25 70 85 110 125 8, 10, 12.5 mhz 16.67 mhz figure 10-1. mc68000 power dissipation (p d ) vs ambient temperature (t a ) (not applicable to mc68hc000/68hc001/68ec000)