home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / CBMDevKit2.dms / CBMDevKit2.adf / DevTools / DevTools.lha / Devtools / 68000.Cards < prev    next >
Encoding:
Text File  |  1993-05-13  |  8.1 KB  |  569 lines

  1. @TEMPLATE
  2. @N=200
  3. @@@@@@@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  4.  ------------------ 68000 Instructions --------------------
  5.  Mnem
  6.  Notes
  7.  Modes
  8.  Sizes
  9.  XNZVC
  10. @ENDTEMPLATE
  11.  
  12. @
  13. ABCD - Add BCD src,dest with extend
  14. src10 + dest10 + X -> dest10
  15. Dy,Dx    -(Ay),-(Ax)
  16. 8        8
  17. *U*U*    *U*U*
  18.  
  19. @
  20. ADD - Add binary src,dest
  21. src + dest -> dest
  22. <ea>,Dn   Dn,<ea>
  23. 8,16,32   8,16,32
  24. *****     *****
  25.  
  26. @
  27. ADDA - Add binary src to address register  src,dest
  28. src + dest -> dest  (all 32 bits of dest affected)
  29. <ea>,An
  30. 16,32
  31. -----
  32.  
  33. @
  34. ADDI - Add immediate constant  #d,dest
  35. #d + dest -> dest
  36. #d,<ea>
  37. 8,16,32
  38. *****
  39.  
  40. @
  41. ADDQ - Add 3-bit immediate constant  #d3,dest
  42. #d3 + dest -> dest
  43. #d3,<ea>
  44. 8,16,32
  45. *****
  46.  
  47. @
  48. ADDX - Add extended  src,dest
  49. src + dest + X -> dest
  50. Dx,Dy    -(Ax),-(Ay)
  51. 8,16,32  8,16,32
  52. *****    *****
  53.  
  54. @
  55. AND - Bitwise AND  src,dest
  56. src AND dest -> dest
  57. <ea>,Dn  Dn,<ea>
  58. 8,16,32  8,16,32
  59. *****    *****
  60.  
  61. @
  62. ANDI - Bitwise AND with immediate  #d,dest
  63. #d AND dest -> dest
  64. #d,<ea>
  65. 8,16,32
  66. -**00
  67.  
  68. @
  69. ANDI SR - ANDI to SR (Priviledged)
  70. if(S=1) src AND SR -> SR;  ELSE TRAP
  71. #d,SR (priv)
  72. 8,16
  73. *****
  74.  
  75. @
  76. ASL - Arithmetic shift left  count,dest
  77. dest 0 << count -> dest,C; sets V if sign change
  78. Dx,Dy    #d,Dn    <ea>
  79. 8,16,32  8,16,32  16
  80. *****    *****    *****
  81.  
  82. @
  83. ASR - Arithmetic shift right  count,dest
  84. sign dest >> count -> dest,C,X
  85. Dx,Dy    #d,Dn    <ea>
  86. 8,16,32  8,16,32  16
  87. *****    *****    *****
  88.  
  89. @
  90. Bcc <label> - Branch on condition code
  91. Bcc[.S/.W] <label>: if cc then PC + disp -> PC
  92. Bcc.S    Bcc.W    Bcc
  93. 8        16       32
  94. -----    -----    -----
  95.  
  96. @
  97. BCHG - Test and invert a single bit  bit,dest
  98. ~dest[bit] -> dest[bit], Z
  99. Dn,<ea>  #d,<ea>
  100. 8,32     8,32
  101. --*--    --*--
  102.  
  103. @
  104. BCLR - Test and clear a single bit  bit,dest
  105. 0 -> dest[bit], ~dest[bit] -> Z
  106. Dn,<ea>  #d,<ea>
  107. 8,32     8,32
  108. --*--    --*--
  109.  
  110. @
  111. BRA <label> - Branch always
  112. PC + disp -> PC
  113. BRA.S    BRA.W    BRA
  114. 8        16       32
  115. -----    -----    -----
  116.  
  117. @
  118. BSET - Test and set a single bit  bit,dest
  119. 1 -> dest[bit], ~dest[bit] -> Z
  120. Dn,<ea>  #d,<ea>
  121. 8,32     8,32
  122. --*--    --*--
  123.  
  124. @
  125. BSR <label> - Branch relative to subroutine
  126. PC -> -(SP); PC + disp -> PC
  127. BSR.S    BSR.W    BSR
  128. 8        16       32
  129. -----    -----    -----
  130.  
  131. @
  132. BTST - Test a single bit  bit,dest
  133. ~dest[bit] -> Z  (bit mod 8 if memory dest)
  134. Dn,<ea>  #d,<ea>
  135. 8,32     8,32    <- 8 for memory <ea>, 32 for reg
  136. --*--    --*--
  137.  
  138. @
  139. CHK - Check register against bounds
  140. if Dn<0 or Dn>dest then TRAP
  141. <ea>,Dn
  142. 16
  143. --*--  (Cause CHK exeption)
  144.  
  145. @
  146. CLR - Sets operand to 0
  147. 0 -> dest  (can't CLR an A register)
  148. <ea>
  149. 8,16,32
  150. -0100
  151.  
  152. @
  153. CMP - Compare  src,dest
  154. dest - src; set CCR
  155. <ea>,Dn
  156. 8,16,32
  157. -****
  158.  
  159. @
  160. CMPA - Compare address  src,dest
  161. dest - src; set CCR
  162. <ea>,An
  163. 16,32
  164. -****
  165.  
  166. @
  167. CMPI - Compare immediate  #d,dest
  168. dest - #d; set CCR
  169. #d,<ea>
  170. 8,16,32
  171. -****
  172.  
  173. @
  174. CMPM - Compare memory with post-inc  src,dest
  175. dest - src; set CCR
  176. (Ay)+,(Ax)+
  177. 8,16,32
  178. -*****
  179.  
  180. @
  181. DBcc - Decrement Bcc
  182. if cc false, Dn-1->Dn; if Dn<>-1, PC+disp->PC
  183. Dn,<label>
  184. 16
  185. -----
  186.  
  187. @
  188. DIVS - Divide signed  src16,dest32
  189. dest32 / src16 -> dest[rem16][quot16]
  190. <ea>,Dn
  191. 16
  192. -***0 (by 0 TRAP; V set if quotnt > 16 bit)
  193.  
  194. @
  195. DIVU - Divide unsigned  src16,dest32
  196. dest32 / src16 -> dest[rem16][quot16]
  197. <ea>,Dn
  198. 16
  199. -***0 (by 0 TRAP; V set if quotnt > 16 bit)
  200.  
  201. @
  202. EOR - Exclusive OR  src,dest
  203. src EOR dest -> dest
  204. Dn,<ea>
  205. 8,16,32
  206. -**00
  207.  
  208. @
  209. EORI - Exclusive OR immediate  #d,dest
  210. #d EOR dest -> dest
  211. #d,<ea>
  212. 8,16,32
  213. -**00
  214.  
  215. @
  216. EORI SR - EORI to SR (Priviledged)
  217. if(S=1) data EOR SR -> SR; ELSE TRAP
  218. #d,SR (priviledged)
  219. 16,32
  220. *****
  221.  
  222. @
  223. EXG - Exchange contents of 2 registers
  224. Rx <-> Ry
  225. Rx,Ry
  226. 32
  227. -----
  228.  
  229. @
  230. EXT - Sign Extend
  231. extend sign bit of byte->word or word->long
  232. Dn
  233. 16,32
  234. -**00
  235.  
  236. @
  237. ILLEGAL - an illegal instruction
  238. PC-> -(SSP); SR-> -(SSP); Except.Vec#4->PC
  239. none
  240. none
  241. -----
  242.  
  243. @
  244. JMP - Transfer control to dest
  245. <ea> -> PC
  246. <ea>
  247. unsized
  248. -----
  249.  
  250. @
  251. JSR - Calls subroutine at dest
  252. PC -> -(SP); <ea> -> PC
  253. <ea>
  254. unsized
  255. -----
  256.  
  257. @
  258. LEA - Load effective address into An
  259. <ea> -> An
  260. <ea>,An
  261. 32
  262. -----
  263.  
  264. @
  265. LINK - Allocates a stack frame
  266. An -> -(SP); SP -> An; SP + d16 -> SP
  267. An,#d
  268. unsized
  269. -----
  270.  
  271. @
  272. LSL - Logical shift left  count,dest
  273. dest 0 << count -> dest,C,X
  274. Dx,Dy    #d,Dn    <ea>
  275. 8,16,32  8,16,32  16
  276. ***0*    ***0*    ***0*
  277.  
  278. @
  279. LSR - Logical shift right  count,dest
  280. 0 dest >> count -> dest,C,X
  281. Dx,Dy     #d,Dn     <ea>
  282. 8,16,32   8,16,32   16
  283. ***0*     ***0*     ***0*
  284.  
  285. @
  286. MOVE - Move to memory or Dn  src,dest
  287. src -> dest
  288. <ea>,<ea>  <ea>,CCR
  289. 8,16,32    16
  290. -**00      *****
  291.  
  292. @
  293. MOVE SR - Move to/from SR (Priv. on 68020)
  294. if(S=1) SR->dest or dest->SR;  ELSE TRAP
  295. SR,<ea>   <ea>,SR
  296. 16        16
  297. -----     *****
  298.  
  299. @
  300. MOVE USP - Move to/from USP (Priviledged)
  301. if(S=1) USP->dest or dest->USP;  ELSE TRAP
  302. USP,An    An,USP
  303. 32        32
  304. -----     -----
  305.  
  306. @
  307. MOVEA - Move to address register  src,An
  308. src -> An
  309. <ea>,An
  310. 16,32
  311. -----
  312.  
  313. @
  314. MOVEM - Move multiple regs <> memory
  315. list -> dest  (example list:  d0-d2/a1/a3-a6)
  316. <list>,<ea> or -(An)    <ea> or (An)+,<list>
  317. 16,32                   16,32
  318. -----                   -----
  319.  
  320. @
  321. MOVEP - Move 8-bit peripheral data
  322. Move periph. reg <> alternate mem. bytes
  323. Dx,d(Ay)  d(Ay),Dx
  324. 16,32     16,32
  325. -----     -----
  326.  
  327. @
  328. MOVEQ - Move 8-bit signed immediate  #d8,dest
  329. #d8 -> dest (d = -128 to 127)
  330. #d8,Dn
  331. 32
  332. -**00
  333.  
  334. @
  335. MULS - Multiply signed  src16,dest16
  336. src16 * dest16 -> dest32
  337. <ea>,Dn
  338. 16
  339. -**00
  340.  
  341. @
  342. MULU - Multiply unsigned  src16,dest16
  343. src16 * dest16 -> dest32
  344. <ea>,Dn
  345. 16
  346. -**00
  347.  
  348. @
  349. NBCD - Negate BCD  dest10
  350. 0 - dest10 - X -> dest10
  351. <ea>
  352. 8
  353. *U*U*
  354.  
  355. @
  356. NEG - Negate (2's comp)
  357. 0 - dest -> dest
  358. <ea>
  359. 8,16,32
  360. *****
  361.  
  362. @
  363. NEGX - Negate with extend (2's comp)
  364. 0 - dest - X -> dest
  365. <ea>
  366. 8,16,32
  367. *****
  368.  
  369. @
  370. NOP - No operation
  371. PC + 2 -> PC
  372. none
  373. none
  374. -----
  375.  
  376. @
  377. NOT - Flip all bits (1's comp)
  378. ~dest -> dest
  379. <ea>
  380. 8,16,32
  381. -**00
  382.  
  383. @
  384. OR - Bitwise inclusive binary OR  src,dest
  385. src OR dest -> dest
  386. <ea>,Dn   Dn,<ea>
  387. 8,16,32   8,16,32
  388. -**00     -**00
  389.  
  390. @
  391. ORI - Bitwise inclusive binary immediate OR
  392. #d OR dest -> dest
  393. #d,<ea>
  394. 8,16,32
  395. -**00
  396.  
  397. @
  398. OR - ORI to SR (Priviledged)
  399. if(S=1) data OR SR -> SR; ELSE TRAP
  400. #d,SR
  401. 8,16,32
  402. *****
  403.  
  404. @
  405. PEA - Push effective address
  406. <ea> -> -(SP)
  407. <ea>
  408. 32
  409. -----
  410.  
  411. @
  412. RESET - Reset all devices (Priviledged)
  413. if S = 1 then assert Reset line
  414. none
  415. none
  416. -----
  417.  
  418. @
  419. ROL - Rotate left  count,dest
  420. dest << count, left dest bit into right and C
  421. Dx,Dy     #d,Dn     <ea>
  422. 8,16,32   8,16,32   16
  423. -**0*     -**0*     -**0*
  424.  
  425. @
  426. ROR - Rotate right  count,dest
  427. dest >> count, right dest bit into left and C
  428. Dx,Dy     #d,Dn     <ea>
  429. 8,16,32   8,16,32   16
  430. -**0*     -**0*     -**0*
  431.  
  432. @
  433. ROXL - Rotate left with extend  count,dest
  434. dest << count, X to right bit, left bit to X,C
  435. Dx,Dy     #d,Dn     <ea>
  436. 8,16,32   8,16,32   16
  437. ***0*     ***0*     ***0*
  438.  
  439. @
  440. ROXR - Rotate right with extend  count,dest
  441. dest << count, X to left bit, right bit to X,C
  442. Dx,Dy     #d,Dn     <ea>
  443. 8,16,32   8,16,32   16
  444. ***0*     ***0*     ***0*
  445.  
  446. @
  447. RTE - Return from Exception  (Priviledged)
  448. if(S=1) (SP)+ -> SR, (SP)+ -> PC; ELSE TRAP
  449. none (Note - 68010 has a variation on this)
  450. none
  451. *****
  452.  
  453. @
  454. RTR - Return and Restore
  455. (SP)+ -> CCR; (SP)+ -> PC
  456. none
  457. none
  458. *****
  459.  
  460. @
  461. RTS - Return from subroutine
  462. (SP)+ -> PC
  463. none
  464. none
  465. -----
  466.  
  467. @
  468. SBCD - Subtract BCD with extend  src10,dest10
  469. src10 - dest10 - X -> dest10
  470. Dy,Dx    -(Ay),-(Ax)
  471. 8        8
  472. *U*U*    *U*U*
  473.  
  474. @
  475. Scc - Set/clear byte based on cc
  476. if cc true $FF -> dest; else $00 -> dest
  477. <ea>
  478. 8
  479. -----
  480.  
  481. @
  482. STOP - enable/wait interrupt (Priviledged)
  483. if(S=1) d16->SR, PC+4->PC, wait except; ELSE TRAP
  484. #d
  485. 16
  486. *****
  487.  
  488. @
  489. SUB - Subtract binary  src,dest
  490. dest - src -> dest
  491. <ea>,Dn   Dn,<ea>
  492. 8,16,32   8,16,32
  493. *****     *****
  494.  
  495. @
  496. SUBA - Subtract binary from An  src,dest
  497. dest - src -> dest  (all 32 bits of dest affected)
  498. <ea>,An
  499. 16,32
  500. -----
  501.  
  502. @
  503. SUBI - Subtract immediate  #d,dest
  504. dest - #d -> dest
  505. #d,<ea>
  506. 8,16,32
  507. *****
  508.  
  509. @
  510. SUBQ - Subtract 3bit immediate  #d3,dest
  511. dest - #d3 -> dest
  512. #d3,<ea>
  513. 8,16,32
  514. *****
  515.  
  516. @
  517. SUBX - Subtract with extend  src,dest
  518. dest - src - X -> dest
  519. Dy,Dx     -(Ay),-(Ax)
  520. 8,16,32   8,16,32
  521. *****     *****
  522.  
  523. @
  524. SWAP - swap the 2 words in Dn
  525. Dn[31:16] <-> Dn[15:0]
  526. Dn
  527. 16
  528. -----
  529.  
  530. @
  531. TAS - Test and Set (Don't use on Amiga)
  532. Test dest -> CCR; 1 -> dest[bit 7]
  533. <ea>
  534. 8
  535. -**00
  536.  
  537. @
  538. TRAP - generate a trap
  539. PC-> -(SSP); SR-> -(SSP); Vector#d4-> PC
  540. #<vector>
  541. none
  542. -----
  543.  
  544. @
  545. TRAPV - overflow trap
  546. if V=1 then TRAP
  547. none
  548. none
  549. -----
  550.  
  551. @
  552. TST - Test for negative or zero
  553. Test dest -> CCR
  554. <ea>
  555. 8,16,32
  556. -**00
  557.  
  558. @
  559. UNLK - Frees stack frame alloc'd by a LINK
  560. An -> SP;  (SP)+ -> An
  561. An
  562. unsized
  563. -----
  564.  
  565.  
  566.  
  567.  
  568.  
  569.