home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / phxass / motorola.doc next >
Text File  |  1995-02-27  |  13KB  |  374 lines

  1. **
  2. **    Listing of all Motorola instructions supported by PhxAss V3.xx
  3. **
  4.  
  5.  
  6. **    Integer Instructions (68000,68010,68020,68030,68040)
  7.  
  8. ABCD        Dy,Dx               Add Decimal with Extend
  9. ABCD        -(Ay),-(Ax)
  10. ADD.x        <ea>,Dn               Add
  11. ADD.x        Dn,<ea>
  12. ADDA.x        <ea>,An               Add Address
  13. ADDI.x        #<data>,<ea>           Add Immediate
  14. ADDQ.x        #<data>,<ea>           Add Quick
  15. ADDX.x        Dy,Dx               Add Extended
  16. ADDX.x        -(Ay),-(Ax)
  17. AND.x        <ea>,Dn               And Logical
  18. AND.x        Dn,<ea>
  19. ANDI.x        #<data>,<ea>           And Immediate
  20. ANDI.x        #<data>,CCR            And Immediate to Condition Codes
  21. ANDI.x        #<data>,SR               And Immediate to the Status Register
  22. ASL/ASR.x   Dx,Dy               Arithmetic Shift Left/Right
  23. ASL/ASR.x   #<data>,Dy
  24. ASL/ASR     <ea>
  25. B<cc>.x     <label>               Branch Conditionally
  26. BCHG        Dn,<ea>               Test a Bit and Change
  27. BCHG        #<data>,<ea>
  28. BCLR        Dn,<ea>               Test a Bit and Clear
  29. BCLR        #<data>,<ea>
  30. BRA.x        <label>               Branch Always
  31. BSET        Dn,<ea>               Test a Bit and Set
  32. BSET        #<data>,<ea>
  33. BSR.x        <label>               Branch to Subroutine
  34. BTST.x        Dn,<ea>               Test a Bit
  35. BTST.x        #<data>,<ea>
  36. CHK.x        <ea>,Dn               Check Register Against Bounds
  37. CLR.x        <ea>               Clear an Operand
  38. CMP.x        <ea>,Dn               Compare
  39. CMPA.x        <ea>,An               Compare Address
  40. CMPI.x        #<data>,<ea>           Compare Immediate
  41. CMPM.x        (Ay)+,(Ax)+            Compare Memory
  42. DB<cc>        Dn,<label>               Test Condition, Decrement, and Branch
  43. DIVS        <ea>,Dn               Signed Divide
  44. DIVU        <ea>,Dn               Unsigned Divide
  45. EOR.x        Dn,<ea>               Exclusive-OR Logical
  46. EORI.x        #<data>,<ea>           Exclusive-OR Immediate
  47. EORI.x        #<data>,CCR            Exclusive-OR Immediate to Cond. Codes
  48. EORI.x        #<data>,SR               Exclusive-OR Immediate to Status Reg.
  49. EXG        Rn,Rm               Exchange Registers
  50. EXT.x        Dn                   Sign Extend
  51. ILLEGAL                    Take Illegal Instruction Trap
  52. JMP        <ea>               Jump
  53. JSR        <ea>               Jump to Subroutine
  54. LEA        <ea>,An               Load Effective Address
  55. LINK        An,#<displacement>           Link and Allocate
  56. LSL/LSR.x   Dx,Dy               Logical Shift Left/Right
  57. LSL/LSR.x   #<data>,Dy
  58. LSL/LSR     <ea>
  59. MOVE.x        <ea>,<ea>               Move Data from Source to Destination
  60. MOVEA.x     <ea>,An               Move Address
  61. MOVE        <ea>,CCR               Move to Condition Codes
  62. MOVE        <ea>,SR               Move to the Status Register
  63. MOVE        SR,<ea>               Move from Status Register
  64. MOVE        USP,An               Move User Stack Pointer
  65. MOVE        An,USP
  66. MOVEM.x     <register list>,<ea>       Move Multiple Registers
  67. MOVEM.x     <ea>,<register list>
  68. MOVEP.x     Dx,(d,Ay)               Move Peripheral Data
  69. MOVEP.x     (d,Ay),Dx
  70. MOVEQ        #<data>,Dn               Move Quick
  71. MULS        <ea>,Dn               Signed Multiply
  72. MULU        <ea>,Dn               Unsigned Multiply
  73. NBCD        <ea>               Negate Decimal with Extend
  74. NEG.x        <ea>               Negate
  75. NEGX.x        <ea>               Negate with Extend
  76. NOP                       No Operation
  77. NOT.x        <ea>               Logical Complement
  78. OR.x        <ea>,Dn               Inclusive-OR Logical
  79. OR.x        Dn,<ea>
  80. ORI.x        #<data>,<ea>           Inclusive-OR Immediate
  81. ORI.x        #<data>,CCR            Inclusive-OR Immediate to Cond. Codes
  82. PEA        <ea>               Push Effective Address
  83. RESET                       Reset External Devices
  84. ROL/ROR.x   Dx,Dy               Rotate (without Extend) Left/Right
  85. ROL/ROR.x   #<data>,Dy
  86. ROL/ROR     <ea>
  87. ROXL/ROXR.x Dx,Dy               Rotate Left/Right with Extend
  88. ROXL/ROXR.x #<data>,Dy
  89. ROXL/ROXR   <ea>
  90. RTE                       Return from Exception
  91. RTR                       Return and Restore Condition Codes
  92. RTS                       Return from Subroutine
  93. SBCD        Dx,Dy               Subtract Decimal with Extend
  94. SBCD        -(Ax),-(Ay)
  95. S<cc>        <ea>               Set According to Condition
  96. STOP        #<data>               Load Status Register and Stop
  97. SUB.x        <ea>,Dn               Subtract
  98. SUB.x        Dn,<ea>
  99. SUBA.x        <ea>,An               Subtract Address
  100. SUBI.x        #<data>,<ea>           Subtract Immediate
  101. SUBQ.x        #<data>,<ea>           Subtract Quick
  102. SUBX.x        Dx,Dy               Subtract with Extend
  103. SWAP        Dn                   Swap Register Halves
  104. TAS        <ea>               Test and Set an Operand
  105. TRAP        #<vector>               Take Trap Exception
  106. TRAPV                       Trap on Overflow
  107. TST.x        <ea>               Test an Operand
  108. UNLK        An                   Unlink
  109.  
  110. Integer Condition Codes <cc>:
  111. CC (HS)  carry clear (higher or same)  CS (LO)    carry set (lower)
  112. EQ     equal                   F    never true
  113. GE     greater or equal           GT    greater than
  114. HI     higher                LE    less or equal
  115. LS     less or same               LT    less than
  116. MI     negative               NE    not equal
  117. PL     positive               T    always true
  118. VC     overflow clear            VS    overflow set
  119.  
  120.  
  121. **    Integer Instructions (68010,68020,68030,68040)
  122.  
  123. BKPT        #<data>               Breakpoint
  124. MOVE        CCR,<ea>               Move from the Condition Code Register
  125. MOVEC        Rc,Rn               Move Control Registers
  126. MOVEC        Rn,Rc
  127. MOVES        Rn,<ea>               Move Address Space
  128. MOVES        <ea>,Rn
  129. RTD        #<displacement>           Return and Deallocate
  130.  
  131.  
  132. **    Integer Instructions (68020,68030,68040)
  133.  
  134. BFCHG        <ea>{offset:width}           Test Bit Field and Change
  135. BFCLR        <ea>{offset:width}           Test Bit Field and Clear
  136. BFEXTS        <ea>{offset:width},Dn      Extract Bit Field Signed
  137. BFEXTU        <ea>{offset:width},Dn      Extract Bit Field Unsigned
  138. BFFFO        <ea>{offset:width},Dn      Find First One in Bit Field
  139. BFINS        Dn,<ea>{offset:width}      Insert Bit Field
  140. BFSET        <ea>{offset:width}           Test Bit Field and Set
  141. BFTST        <ea>{offset:width}           Test Bit Field
  142. CALLM        #<data>,<ea>           Call Module (68020 ONLY!)
  143. CAS.x        Dc,Du,<ea>               Compare and Swap with Operand
  144. CAS2.x        Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)
  145. CHK2.x        <ea>,Rn               Check Register Against Bounds
  146. CMP2.x        <ea>,Rn               Compare Register Against Bounds
  147. DIVS.L        <ea>,Dq               Signed Divide
  148. DIVS.L        <ea>,Dr:Dq
  149. DIVSL.L     <ea>,Dr:Dq
  150. DIVU.L        <ea>,Dq               Unsigned Divide
  151. DIVU.L        <ea>,Dr:Dq
  152. DIVUL.L     <ea>,Dr:Dq
  153. EXTB.L        Dn                   Sign Extend
  154. LINK.L        An,#<displacement>           Link and Allocate
  155. MULS.L        <ea>,Dl               Signed Multiply
  156. MULS.L        <ea>,Dh:Dl
  157. MULU.L        <ea>,Dl               Unsigned Multiply
  158. MULU.L        <ea>,Dh:Dl
  159. PACK        -(Ax),-(Ay),#<adjustment>  Pack BCD
  160. PACK        Dx,Dy,#<adjustment>
  161. RTM        Rn                   Return from Module (68020 ONLY!)
  162. TRAP<cc>                   Trap on Condition
  163. TRAP<cc>.x  #<data>
  164. UNPK        -(Ax),-(Ay),#<adjustment>  Unpack BCD
  165. UNPK        Dx,Dy,#<adjustment>
  166.  
  167.  
  168. **    Integer Instructions (68040)
  169.  
  170. CINVL        <caches>,(An)           Invalidate Cache Lines
  171. CINVP        <caches>,(An)           (<caches> = DC, IC, BC or NC)
  172. CINVA        <caches>
  173. CPUSHL        <caches>,(An)           Push and Invalidate Cache Lines
  174. CPUSHP        <caches>,(An)
  175. CPUSHA        <caches>
  176. MOVE16        (Ax)+,(Ay)+            Move 16 Bytes Block
  177. MOVE16        xxx.L,(An)
  178. MOVE16        xxx.L,(An)+
  179. MOVE16        (An),xxx.L
  180. MOVE16        (An)+,xxx.L
  181.  
  182.  
  183. MOVEC Control Registers (Rc):
  184.                           68010 68020 68030 68040
  185. SFC   Source Function Code            x     x     x      x
  186. DFC   Destination Function Code         x     x     x      x
  187. USP   User Stack Pointer            x     x     x      x
  188. VBR   Vector Base Register            x     x     x      x
  189. CACR  Cache Control Register                  x     x      x
  190. CAAR  Cache Address Register                  x     x
  191. MSP   Master Stack Pointer                  x     x      x
  192. ISP   Interrupt Stack Pointer                  x     x      x
  193. TC    MMU Translation Control Register                  x
  194. ITT0  Instr. Transparent Translation Reg. 0              x
  195. ITT1  Instr. Transparent Translation Reg. 1              x
  196. DTT0  Data Transparent Translation Reg. 0              x
  197. DTT1  Data Transparent Translation Reg. 1              x
  198. MMUSR MMU Status Register                      x
  199. URP   User Root Pointer                       x
  200. SRP   Supervisor Root Pointer                      x
  201.  
  202.  
  203. **    Floating Point Instructions (68881,68882,68040)
  204.  
  205. Monadic operations:
  206. Fxxxx        <ea>,FPn
  207. Fxxxx        FPm,FPn
  208. Fxxxx        FPn
  209.  
  210. FABS        Floating-Point Absolute value
  211. FACOS        Arc Cosine
  212. FASIN        Arc Sine
  213. FATAN        Arc Tangent
  214. FTANTH        Hyberbolic Arc Tangent
  215. FCOS        Cosine
  216. FCOSH        Hyperbolic Cosine
  217. FETOX        e to x
  218. FETOXM1     e to x minus one
  219. FGETEXP     Get Exponent
  220. FGETMAN     Get Mantissa
  221. FINT        Integer Part
  222. FINTRZ        Integer Part, Round to Zero
  223. FLOG10        log10
  224. FLOG2        log2
  225. FLOGN        loge
  226. FLOGNP1     loge (x+1)
  227. FNEG        Floating-Point Negate
  228. FSIN        Sine
  229. FSINH        Hyperbolic Sine
  230. FSQRT        Floating-Point Square Root
  231. FTAN        Tangent
  232. FTANH        Hyperbolic Tangent
  233. FTENTOX     10 to x
  234. FTWOTOX     2 to x
  235.  
  236. Dyadic operations:
  237. Fxxxx        <ea>,FPn
  238. Fxxxx        FPm,FPn
  239.  
  240. FADD        Floating-Point Add
  241. FCMP        Floating-Point Compare
  242. FDIV        Floating-Point Divide
  243. FMOD        Modulo Remainder
  244. FMUL        Floating-Point Multiply
  245. FREM        IEEE Remainder
  246. FSCALE        Scale Exponent
  247. FSGLDIV     Single Precision Divide
  248. FSGLMUL     Single Precision Multiply
  249. FSUB        Floating-Point Subtract
  250.  
  251. Special operations:
  252. FB<cc>.x    <label>               Floating-Point Branch Conditionally
  253. FDB<cc>     Dn,<label>               F.-Point Test Cond., Decr., and Branch
  254. FMOVE.x     <ea>,FPn               Move Floating-Point Data Register
  255. FMOVE.x     FPm,<ea>
  256. FMOVE.P     FPm,<ea>{Dn}
  257. FMOVE.P     FPm,<ea>{#k}
  258. FMOVE.L     <ea>,FPcr               Move Flt.-Point System Control Register
  259. FMOVE.L     FPcr,<ea>               (FPcr = FPCR, FPSR or FPIAR)
  260. FMOVECR     #ccc,FPn               Move Constant ROM
  261. FMOVEM        <list>,<ea>            Move Multiple Flt.-Point Data Registers
  262. FMOVEM        Dn,<ea>
  263. FMOVEM        <ea>,<list>
  264. FMOVEM        <ea>,Dn
  265. FMOVEM.L    <list>,<ea>            Move Multiple Flt.-Point Control Regs.
  266. FMOVEM.L    <ea>,<list>            (<list> = combination of FPCR,FPSR,FPIAR)
  267. FNOP                       No Operation
  268. FRESTORE    <ea>               Restore Internal Floating-Point State
  269. FSAVE        <ea>               Save Internal Floating-Point State
  270. FS<cc>        <ea>               Set According to Flt.-Point Condition
  271. FSINCOS.x   <ea>,FPc:FPs           Simultaneous Sine and Cosine
  272. FSINCOS     FPm,FPc:FPs
  273. FTRAP<cc>                   Trap on Floating-Point Condition
  274. FTRAP<cc>.x #<data>
  275. FTST.x        <ea>               Test Floating-Point Operand
  276. FTST        FPm
  277.  
  278. Floating-Point Condition Codes <cc>:
  279. F     false                   EQ    equal
  280. OGT     ordered greater than           OGE    ordered greater than or equal
  281. OLT     ordered less than           OLE    ordered less than or equal
  282. OGL     ordered greater or less than  OR    ordered
  283. UN     unordered               UNE    unordered or equal
  284. UGT     unordered or greater than     UGE    unordered or gt. than or equal
  285. ULT     unordered or less than        ULE    unordered or less than or equal
  286. NE     not equal               T    true
  287. SF     signaling false           SEQ    signaling equal
  288. GT     greater than               GE    greater than or equal
  289. LT     less than               LE    less than or equal
  290. GL     greater than or less than     GLE    greater or less than or equal
  291. NGLE     not (gt. or less or equal)    NGL    not (greater or less than)
  292. NLE     not (less than or equal)      NLT    not (less than)
  293. NGE     not (greater than or equal)   NGT    not (greater than)
  294. SNE     signaling not equal           ST    signaling true
  295.  
  296.  
  297. **    Floating Point Instructions (68040)
  298.  
  299. FSADD        Add Single Precision
  300. FDADD        Add Double Precision
  301. FSDIV        Single Precision Divide
  302. FDDIV        Double Precision Divide
  303. FSMOVE        Single Precision Move
  304. FDMOVE        Double Precision Move
  305. FSMUL        Single Precision Multiply
  306. FDMUL        Double Precision Multiply
  307. FSNEG        Single Precision Negate
  308. FDNEG        Double Precision Negate
  309. FSSQRT        Single Precision Square Root
  310. FDSQRT        Double Precision Square Root
  311. FSSUB        Subtract Single Precision
  312. FDSUB        Subtract Double Precision
  313.  
  314.  
  315. **    PMMU Instructions (68851)
  316.  
  317. PB<cc>.x    <label>               Branch on PMMU Condition
  318. PDB<cc>     Dn,<label>               Test, Decrement, and Branch on PMMU Cond.
  319. PFLUSHA                    Invalidate Entries in the ATC
  320. PFLUSH        <fc>,#<mask>
  321. PFLUSHS     <fc>,#<mask>
  322. PFLUSH        <fc>,#<mask>,<ea>
  323. PFLUSHS     <fc>,#<mask>,<ea>
  324. PFLUSHR     <ea>               Invalidate ATC and RPT Entries
  325. PLOADR        <fc>,<ea>               Load an Entry into the ATC
  326. PLOADW        <fc>,<ea>
  327. PMOVE        <PMMU Register>,<ea>       Move PMMU Register
  328. PMOVE        <ea>,<PMMU Register>
  329. PRESTORE    <ea>               PMMU Restore Function
  330. PSAVE        <ea>               PMMU Save Function
  331. PS<cc>        <ea>               Set on PMMU Condition
  332. PTESTR        <fc>,<ea>,#<level>           Get Information About Logical Address
  333. PTESTR        <fc>,<ea>,#<level>,An
  334. PTESTW        <fc>,<ea>,#<level>
  335. PTESTW        <fc>,<ea>,#<level>,An
  336. PTRAP<cc>                   Trap on PMMU Condition
  337. PTRAP<cc>.x #<data>
  338.  
  339. PMMU Condition Codes <cc>:
  340. BS, BC, LS, LC, SS, SC, AS, AC, WS, WC, IS, IC, GS, GC, CS, CC
  341.  
  342. PMMU Registers:
  343. CRP, SRP, DRP, TC, BACx, BADx, AC, PSR, PCSR, CAL, VAL, SCC
  344.  
  345.  
  346. **    PMMU Instructions (68030)
  347.  
  348. PFLUSHA                    Flush Entry in the ATC
  349. PFLUSH        <fc>,#<mask>
  350. PFLUSH        <fc>,#<mask>,<ea>
  351. PLOADR        <fc>,<ea>               Load an Entry into the ATC
  352. PLOADW        <fc>,<ea>
  353. PMOVE        MRn,<ea>               Move to/from MMU Registers
  354. PMOVE        <ea>,MRn
  355. PMOVEFD     <ea>,MRn
  356. PTESTR        <fc>,<ea>,#<level>           Test a Logical Address
  357. PTESTR        <fc>,<ea>,#<level>,An
  358. PTESTW        <fc>,<ea>,#<level>
  359. PTESTW        <fc>,<ea>,#<level>,An
  360.  
  361. PMMU Registers (MRn):
  362. SRP, CRP, TC, MMUSR(PSR), TT0, TT1
  363.  
  364.  
  365. **    PMMU Instructions (68040)
  366.  
  367. PFLUSH        (An)               Flush ATC Entries
  368. PFLUSHN     (An)
  369. PFLUSHA
  370. PFLUSHAN
  371. PTESTR        (An)               Test a Logical Address
  372. PTESTW        (An)
  373.  
  374.