68k instructions timings

Mirrored information from [oldwww.nvg.ntnu.no]

The number of bus read and write cycles are shown in parenthesis as (r/w). Any other cycles are internal.

In the following tables, the headings have the following meanings:
 * An : Address register operand
 * Dn : Data register operand
 * ea : Operand specified by an effective address
 * M : Memory effective address operand

To get the real execution time, multiply the total cycles count by 83.33ns (1/12MHz). An example is given in each section.

The vertical blank lasts exactly 40 lines * 384 pixels * 2 cycles per pixel = 30720 cycles (2.56ms).

See optimization.

=Effective address operand calculation=

This table lists the number of clock periods required to compute an instruction's effective address. It includes fetching of any extension words, the address computation, and fetching of the memory operand.

Notes:
 * Pre-dec is slower than post-inc
 * There are no write cycles involved in processing the effective address
 * The size of the index register (ix) does not affect execution time

=Move instructions=

These following two tables indicate the number of clock periods for the move instruction. This data includes instruction fetch, operand reads, and operand writes.

Byte and word
Example: move.b (a0)+,$10201D (Byte (An)+ to xxx.L) takes 20 cycles.

The size of the index register (ix) does not affect execution time.

Long
Example: move.l $05012C,4(a1,d0) (Long xxx.L to d(An,ix)) takes 34 cycles.

The size of the index register (ix) does not affect execution time.

=Standard instructions=

Example: add.w d3,a7 (Long ea Dn + An) takes 8 cycles.

The number of clock periods shown in this table indicates the time required to perform the operations, store the results and read the next instruction. The total number of clock periods must be added respectively to those of the effective address calculation where indicated (+).

=Immediate instructions=

The number of clock periods periods shown in this table includes the time to fetch immediate operands, perform the operations, store the results and read the next operation. The total number of clock periods must be added respectively to those of the effective address calculation where indicated (+).

=Single operand instructions=

=Shift and rotate instructions=

=Bit manipulation instructions=

=Conditional instructions=

=JMP, JSR, LEA, PEA and MOVEM instructions=

=Multi-precision instructions=

=Miscellaneous instructions=

=Move Peripheral instructions=

=Exception processing=