Difference between revisions of "Motorola 68000"
From SizeCoding
(→The Motorola 68k processor) |
|||
Line 22: | Line 22: | ||
The number of cycles for each instruction is different depending of processor model in M68K family. | The number of cycles for each instruction is different depending of processor model in M68K family. | ||
: http://oldwww.nvg.ntnu.no/amiga/MC680x0_Sections/mc68000timing.HTML | : http://oldwww.nvg.ntnu.no/amiga/MC680x0_Sections/mc68000timing.HTML | ||
+ | |||
+ | == Size considerations == | ||
+ | Moving/Calculating Register from/to registers - 2 bytes | ||
+ | Moving/Calculating with byte or word values - 4 bytes | ||
+ | Moving/Calculating with long values - 6 bytes | ||
+ | |||
+ | Shorter variants: | ||
+ | * moveq #value, reg : 2 bytes - Moves a values -128...127 to a register | ||
+ | * addq #value, reg : 2 bytes - Adds a values 0..8 to a register | ||
+ | * subq #value, reg : 2 bytes - Subtracts a values 0..8 from a register | ||
+ | |||
+ | |||
+ | == Resources == | ||
+ | * [http://www.beycan.net/eklenen/M68000_Instruction_Set.pdf M68000 Instruction Set] | ||
== Motorola M68K Platforms == | == Motorola M68K Platforms == |
Revision as of 06:04, 20 June 2022
Contents
Introduction
Wanting to start sizecoding on a Motorola 68k platform in this day and age can be tough.
So here is a bit of help to get you started:
The Motorola 68k processor
The Motorola 68k processor is a 16-bit Big-Endian format processor, using 32-bit register and addresses.
This means that instruction sizes on average are either 2 or 4 bytes each, and 6 bytes for longword / 32-bit instructions.
Note: The assigment direction is source,dest instead of dest,source !!!
Registers
- D0..D7 - 8 x 32 bit General Purpose Registers
- A0..A6 - 7 x 32 bit Address Registers
- A7 - 32-bit Stack-Address Register
Instructions timing
The number of cycles for each instruction is different depending of processor model in M68K family.
Size considerations
Moving/Calculating Register from/to registers - 2 bytes Moving/Calculating with byte or word values - 4 bytes Moving/Calculating with long values - 6 bytes
Shorter variants:
- moveq #value, reg : 2 bytes - Moves a values -128...127 to a register
- addq #value, reg : 2 bytes - Adds a values 0..8 to a register
- subq #value, reg : 2 bytes - Subtracts a values 0..8 from a register
Resources
Motorola M68K Platforms
- Atari ST - Atari ST Sizecoding information
- Atari Jaguar - Atari Jaguar Sizecoding information
- Commodore Amiga - Commodore Amiga Sizecoding information