Actions

SCHG

68000 Instruction Set

From Sonic Retro

Revision as of 17:21, 17 November 2010 by Selbi (talk | contribs) (Condition Codes for Bcc, DBcc and Scc Instructions)
Instruction Description Assembler Syntax Data Size Condition Codes
X N Z V C
ABCD Add BCD with Extend Dx,Dy
-(Ax),-(Ay)
B-- * U * U *
ADD ADD binary Dn,< ea >
< ea >,Dn
BWL * * * * *
ADDA ADD binary to An < ea >,An -WL - - - - -
ADDI Add Immediate #x,< ea > BWL * * * * *
ADDQ ADD 3-bit immediate #<1-8>,< ea > BWL * * * * *
ADDX ADD eXtended Dy,Dx
-(Ay),-(Ax)
BWL * * * * *
AND Bit-wise AND < ea >,Dn
Dn,< ea >
BWL - * * 0 0
ANDI Bit-wise AND with Immediate #< data>,< ea > BWL - * * 0 0
ASL Arithmetic Shift Left #<1-8>,Dy
Dx,Dy
< ea >
BWL * * * * *
ASR Arithmetic Shift Right BWL * * * * *
Bcc Conditional Branch Bcc.S < label>
Bcc.W < label>
BW- - - - - -
BCHG Test a Bit and ChanGe Dn,< ea >
#< data>,< ea >
B-L - - * - -
BCLR Test a Bit and CLEAR B-L - - * - -
BSET Test a Bit and SET B-L - - * - -
BSR Branch to SubRoutine BSR.S < label>
BSR.W < label>
BW- - - - - -
BTST Bit TeST Dn,< ea >
#< data>,< ea >
B-L - - * - -
CHK CHecK Dn Against Bounds < ea >,Dn -W- - * U U U
CLR CLEAR < ea > BWL - 0 1 0 0
CMP CoMPare < ea >,Dn BWL - * * * *
CMPA CoMPare Address < ea >,An -WL - * * * *
CMPI CoMPare Immediate #< data>,< ea > BWL - * * * *
CMPM CoMPare Memory (Ay)+,(Ax)+ BWL - * * * *
DBcc Looping Instruction DBcc Dn,< label> -W- - - - - -
DIVS DIVide Signed < ea >,Dn -W- - * * * 0
DIVU DIVide Unsigned < ea >,Dn -W- - * * * 0
EOR Exclusive OR Dn,< ea > BWL - * * 0 0
EORI Exclusive OR Immediate #< data>,< ea > BWL - * * 0 0
EXG Exchange any two registers Rx,Ry --L - - - - -
EXT Sign EXTend Dn -WL - * * 0 0
ILLEGAL ILLEGAl-Instruction Exception ILLEGAL - - - - -
JMP JuMP to Affective Address < ea > - - - - -
JSR Jump to SubRoutine < ea > - - - - -
LEA Load Effective Address < ea >,An --L - - - - -
LINK Allocate Stack Frame An,#< displacement> - - - - -
LSL Logical Shift Left Dx,Dy
#<1-8>,Dy
< ea >
BWL * * * 0 *
LSR Logical Shift Right BWL * * * 0 *
MOVE Between Effective Addresses < ea >,< ea > BWL - * * 0 0
MOVE To CCR < ea>,CCR -W- I I I I I
MOVE To SR < ea >,SR -W- I I I I I
MOVE From SR SR,< ea > -W- - - - - -
MOVE USP to/from Address Register USP,An
An,USP
--L - - - - -
MOVEA MOVE Address < ea >,An -WL - - - - -
MOVEM MOVE Multiple <register list>,< ea >
< ea >,<register list>
-WL - - - - -
MOVEP Move Peripheral Dn,x(An)
x(An),Dn
-WL - - - - -
MOVEQ Move 8-bit immediate #<-128.+127>,Dn --L - * * 0 0
MULS MULtiply Signed < ea >,Dn -W- - * * 0 0
MULU MULtiply Unsigned < ea >,Dn -W- - * * 0 0
NBCD Negate BCD < ea > B-- * U * U *
NEG NEGate < ea > BWL * * * * *
NEGX NEGate with eXtend < ea > BWL * * * * *
NOP No OPeration NOP - - - - -
NOT Form one's complement < ea > BWL - * * 0 0
OR Bit-wise OR < ea >,Dn
Dn,< ea >
BWL - * * 0 0
ORI Bit-wise OR with Immediate #< data>,< ea > BWL - * * 0 0
PEA Push Effective Address < ea > --L - - - - -
RESET RESET all external devices RESET - - - - -
ROL ROtate Left #<1-8>,Dy
Dx,Dy
< ea >
BWL - * * 0 *
ROR ROtate Right BWL - * * 0 *
ROXL ROtate Left with eXtend BWL * * * 0 *
ROXR ROtate Right with eXtend BWL * * * 0 *
RTE ReTurn from Exception RTE I I I I I
RTR ReTurn and Restore RTR I I I I I
RTS ReTurn from Subroutine RTS - - - - -
SBCD Subtract BCD with eXtend Dx,Dy
-(Ax),-(Ay)
B-- * U * U *
Scc Set to -1 if True, 0 if False < ea > B-- - - - - -
STOP Enable & wait for interrupts #< data> I I I I I
SUB SUBtract binary Dn,< ea >
< ea >,Dn
BWL * * * * *
SUBA SUBtract binary from An < ea >,An -WL - - - - -
SUBI SUBtract Immediate #x,< ea > BWL * * * * *
SUBQ SUBtract 3-bit immediate #< data>,< ea > BWL * * * * *
SUBX SUBtract eXtended Dy,Dx
-(Ay),-(Ax)
BWL * * * * *
SWAP SWAP words of Dn Dn -W- - * * 0 0
TAS Test & Set MSB & Set N/Z-bits < ea > B-- - * * 0 0
TRAP Execute TRAP Exception #< vector> - - - - -
TRAPV TRAPV Exception if V-bit Set TRAPV - - - - -
TST TeST for negative or zero < ea > BWL - * * 0 0
UNLK Deallocate Stack Frame An - - - - -

Legend

  • * - Set according to result of operation
  • - - Not affected
  • 0 - Cleared
  • 1 - Set
  • U - Outcome (state after operation) undefined
  • I - Set by immediate data
  • < ea > - Effective Address Operand
  • < data> - Immediate data
  • < label> - Assembler label
  • < vector> TRAP instruction Exception vector (0-15)
  • < rg.lst> MOVEM instruction register specification list
  • < displ.> LINK instruction negative displacement
Addressing Modes Syntax
Data Register Direct Dn
Address Register Direct An
Address Register Indirect (An)
Address Register Indirect with Post-Increment (An)+
Address Register Indirect with Pre-Decrement -(An)
Address Register Indirect with Displacement w(An)
Address Register Indirect with Index b(An,Rx)
Absolute Short w
Absolute Long l
Program Counter with Displacement w(PC)
Program Counter with Index b(PC,Rx)
Immediate #x
Status Register SR
Condition Code Register CCR

Legend

  • Dn - Data Register (n is 0-7)
  • An - Address Register (n is 0-7)
  • b - 08-bit constant
  • w - 16-bit constant
  • l - 32-bit constant
  • x - 8-, 16-, 32-bit constant
  • Rx - Index Register Specification, one of:
  • Dn.W - Low 16 bits of Data Register
  • Dn.L - All 32 bits of Data Register
  • An.W - Low 16 bits of Address Register
  • An.L - All 32 bits of Address Register


Condition Codes for Bcc, DBcc and Scc Instructions

Condition Codes set after CMP D0,D1 Instruction.

Relationship Unsigned Signed
D1 < D0 CS - Carry Bit Set LT - Less Than
D1 <= D0 LS - Lower or Same LE - Less than or Equal
D1 = D0 EQ - Equal (Z-bit Set)
D1 != D0 NE - Not Equal (Z-bit Clear)
D1 > D0 HI - HIgher than GT - Greater Than
D1 >= D0 CC - Carry Bit Clear GE - Greater than or Equal
D0 >= 0 PL - PLus (N-bit Clear)
D0 < 0 MI - MInus (N-bit Set)
VC - V-bit Clear (No Overflow)
VS - V-bit Set (Overflow)
Bcc only
RA - BRanch Always
DBcc only
F - Never Terminate (DBRA is an alternate to DBF)
T - Always Terminate
Scc only
SF - Never Set
ST - Always Set
Sonic Community Hacking Guide
General
SonED2 Manual | Subroutine Equivalency List
Game-Specific
Sonic the Hedgehog (16-bit) | Sonic the Hedgehog (8-bit) | Sonic CD (prototype 510) | Sonic CD | Sonic CD (PC) | Sonic CD (2011) | Sonic 2 (Simon Wai prototype) | Sonic 2 (16-bit) | Sonic 2 (Master System) | Sonic 3 | Sonic 3 & Knuckles | Chaotix | Sonic Jam | Sonic Jam 6 | Sonic Adventure | Sonic Adventure DX: Director's Cut | Sonic Adventure DX: PC | Sonic Adventure (2010) | Sonic Adventure 2 | Sonic Adventure 2: Battle | Sonic Adventure 2 (PC) | Sonic Heroes | Sonic Riders | Sonic the Hedgehog (2006) | Sonic & Sega All-Stars Racing | Sonic Unleashed (Xbox 360/PS3) | Sonic Colours | Sonic Generations | Sonic Forces
Technical information
Sonic Eraser | Sonic 2 (Nick Arcade prototype) | Sonic CD (prototype; 1992-12-04) | Dr. Robotnik's Mean Bean Machine | Sonic Triple Trouble | Tails Adventures | Sonic Crackers | Sonic 3D: Flickies' Island | Sonic & Knuckles Collection | Sonic R | Sonic Shuffle | Sonic Advance | Sonic Advance 3 | Sonic Battle | Shadow the Hedgehog | Sonic Rush | Sonic Classic Collection | Sonic Free Riders | Sonic Lost World
Legacy Guides
The Nemesis Hacking Guides The Esrael Hacking Guides
ROM: Sonic 1 | Sonic 2 | Sonic 2 Beta | Sonic 3

Savestate: Sonic 1 | Sonic 2 Beta/Final | Sonic 3

Sonic 1 (English / Portuguese) | Sonic 2 Beta (English / Portuguese) | Sonic 2 and Knuckles (English / Portuguese)
Move to Sega Retro
Number Systems (or scrap) | Assembly Hacking Guide | 68000 Instruction Set | 68000 ASM-to-Hex Code Reference | SMPS Music Hacking Guide | Mega Drive technical information