Earxtutapp2: Difference between revisions

From Atari Wiki
Jump to navigation Jump to search
m (Added category)
No edit summary
 
Line 122: Line 122:
   
 
Back to [[ASM_Tutorial]]
 
Back to [[ASM_Tutorial]]
[[Category:Programming]]
+
[[Category:Making optimized assembly code by Earx]]

Latest revision as of 16:31, 12 October 2011

     APPENDIX B: 680X0 INSTRUCTIONS

This listing is based on ARTtbl's one. Big thanx a three cheers to him! =) It
shows all 68030 instructions without FPU stuff. I just included it, because I
feel every coder should have this list.

+-----------------------------------------------------------------------------+
|ACBD       |Add Decimal with Extend      |useless..                          |
|ADD        |Add                          |                                   |
|ADDA       |Add Address                  |                                   |
|ADDI       |Add Immediate                |                                   |
|ADDQ       |Add Quick                    |                                   |
|ADDX       |Add with Extend              |for working with big numbers       |
|AND        |Logical AND                  |                                   |
|ANDI       |Logical AND Immediate        |                                   |
|ASL, ASR   |Arithmetic Shift L/R         |                                   |
|-----------|-----------------------------|                                   |
|Bcc        |Branch Conditionally         |                                   |
|BCHG       |Test Bit and change          |                                   |
|BFCLR      |Test Bit Field and Clr       |useful, but can be slow in loops   |
|BFEXTS     |Signed Bit Field Extract     |                "                  |
|BFEXTU     |Unsigned Bit Field Extract   |                "                  |
|BFFFO      |Bit Field Find First One     |                "                  |
|BFINS      |Bit Field Insert             |                "                  |
|BFSET      |Test Bit Field and Set       |                "                  |
|BFTST      |Test Bit Field               |                "                  |
|BKPT       |Breakpoint                   |for debuuging purposes only        |
|BRA        |Branch                       |                                   |
|BSET       |Test Bit and Set             |                                   |
|BSR        |Branch to Subroutine         |essential for structurising code   |
|BTST       |Test Bit                     |                                   |
|-----------|-----------------------------|                                   |
|CALLM      |Call Module                  |unsupported from 030 and higher?   |
|CAS        |Compare and Swap Operands    |useless, cos of low speed          |
|CAS2       |As above in Dual Mode        |                "                  |
|CHK        |Check Reg: Against Bound     |no idea                            |
|CHK2       |Check Against Upper and      |no idea                            |
|           |Lower Bounds                 |                                   |
|CLR        |Clear                        |replace with moveq or move         |
|CMP        |Compare                      |                                   |
|CMPA       |Compare Address              |                                   |
|CMPI       |Compare Immediate            |                                   |
|CMPM       |Compare Memory to Memory     |                                   |
|CMP2       |Compare Register Against     |no idea                            |
|           |Upper and Lower Bounds       |                                   |
|-----------|-----------------------------|                                   |
|DBcc       |Test Condition, Decrement    |especially dbf/dbra is much used   |
|           |and Branch                   |ideal for loops                    |
|DIVS, DIVSL|Signed Divide                |slow, use muls where possible      |
|DIVU, DIVUL|Unsigned Divide              |slow, use mulu where possible      |
|-----------|-----------------------------|                                   |
|EOR        |Exclusive Or                 |                                   |
|EORI       |Exclusive Or Immediate       |                                   |
|EXG        |Exchange Registers           |                                   |
|EXT, EXTB  |Signed Extend                |                                   |
|-----------|-----------------------------|                                   |
|ILLEGAL    |Take Illegal Instruction Trap|for debugging purposes only        |
|           |                             |                                   |
|-----------|-----------------------------|                                   |
|JMP        |Jump                         |                                   |
|JSR        |Jump to Subroutine           |essential for structurising code   |
|-----------|-----------------------------|                                   |
|LEA        |Load Effective Address       |                                   |
|LINK       |Link and Allocate            |useful for recursive subrout-calls |
|LSL, LSR   |Logical Shift Left/Right     |                                   |
|-----------|-----------------------------|                                   |
|MOVE       |Move                         |unmissable :)                      |
|MOVEA      |Move Address                 |                                   |
|MOVE CCR   |Move Condition Code Reg.     |                                   |
|MOVE SR    |Move Status Register         |                                   |
|MOVE USP   |Move User Stack Pointer      |                                   |
|MOVEC      |Move Control Register        |                                   |
|MOVEM      |Move Multiple                |fast for moving large chunks of mem|
|MOVEP      |Move Peripheral              |                                   |
|MOVEQ      |Move Quick                   |                                   |
|MOVES      |Move Alternate Address Space |                                   |
|MULS       |Signed Multiply              |                                   |
|MULU       |Unsigned Multiply            |                                   |
|-----------|-----------------------------|                                   |
|NBCD       |Negate Decimal with Extend   |useless                            |
|NEG        |Negate                       |                                   |
|NEGX       |Negate with Extend           |                                   |
|NOP        |No Operation                 |no comment :)                      |
|NOT        |Logical Complement           |                                   |
|-----------|-----------------------------|                                   |
|OR         |Logical inclusive Or         |                                   |
|ORI        |Logical inclusive Immediate  |                                   |
|-----------|-----------------------------|                                   |
|PACK       |Pack BCD                     |useless                            |
|PEA        |Push Effective Address       |fast version of move.l ..,-(sp)    |
|-----------|-----------------------------|                                   |
|RESET      |Reset External Devices       |resets our ATARI                   |
|ROL, ROR   |Rotate Left and Right        |                                   |
|ROXL,ROXR  |Rotate with Extend           |                                   |
|RTD        |Return and Deallocate        |                                   |
|RTE        |Return from Exception        |                                   |
|RTM        |Return from Module           |unsupported from 030 and higher?   |
|RTR        |Return from Restore Codes    |                                   |
|RTS        |Return from Subroutine       |used in combination with BSR/JSR   |
|-----------|-----------------------------|                                   |
|SBCD       |Subtr. Decimal with Extend   |useless                            |
|Scc        |Set Conditionally            |                                   |
|STOP       |Stop                         |mhhh... don't use :)               |
|SUB        |Subtract                     |                                   |
|SUBA       |Subtract Address             |                                   |
|SUBI       |Subtract Immediate           |                                   |
|SUBQ       |Subtract Quick               |                                   |
|SUBX       |Subtract with Extend         |for working with big numbers       |
|SWAP       |Swap Register words          |                                   |
|-----------|-----------------------------|                                   |
|TAS        |Test Operand and Set         |handy sometimes                    |
|TRAP       |Trap                         |calls the OS on our ATARI          |
|TRAPcc     |Trap Conditionally           |handy for debugging                |
|TRAPV      |Trap on Overflow             |handy for debugging                |
|TST        |Test Operand                 |faster than cmpi #0,...            |
|-----------|-----------------------------|                                   |
|UNLK       |Unlink                       |used in combination with link      |
|UNPK       |Unpack                       |useless                            |
+-----------------------------------------------------------------------------+

Back to ASM_Tutorial