home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1988-08-20 | 4.9 KB | 161 lines |
- (*
- * This Module helps writing inline code for 68000 & 68010 Microprocessors.
- *
- * ATTENTION: Certain commands are only available on a MC68010.
- * Please consult the "M68000 Programmer's Reference Manual".
- *)
-
- (*$M- no implementation Module *)
- DEFINITION MODULE Assembler;
-
- CONST
-
- (* Register *)
-
- d0=0; d1=1; d2=2; d3=3; d4=4; d5=5; d6=6; d7=7;
- a0=0; a1=1; a2=2; a3=3; a4=4; a5=5; a6=6; a7=7;
-
- (* Bits in Condition Code Register *)
-
- nbit=8; zbit=4; vbit=2; cbit=1;
-
- (* Addressing Modes *)
-
- ddir=00B; (* Dn *)
- adir=10B; (* An *)
- aidr=20B; (* (An) *)
- ainc=30B; (* (An)+ *)
- adec=40B; (* -(An) *)
- aoff=50B; (* d16(An) *)
- aidx=60B; (* d8(An,Rx) *)
- absW=70B; (* abs.W *)
- absL=71B; (* abs.L *)
- prel=72B; (* d16(PC) *)
- imm =74B; (* #n *)
-
- (* Shift values *)
-
- ls0=1; ls1=2; ls2=4; ls3=8; ls4=10H; ls5=20H; ls6=40H; ls7=80H;
- ls8=100H; ls9=200H; ls10=400H; ls11=800H;
- ls12=1000H; ls13=2000H; ls14=4000H; ls15=8000H;
-
- (* MC68000 instruction mnemonics. *)
-
- abcdB=140400B; abcdmB=140410B;
- addB=150000B; addW=150100B; addL=150200B;
- addmB=150400B; addmW=150500B; addmL=150600B;
- addaW=150300B; addaL=150700B;
- addiB=003000B; addiW=003100B; addiL=003200B;
- addqB=050000B; addqW=050100B; addqL=050200B;
- addxB=150400B; addxW=150500B; addxL=150600B;
- addxmB=150410B; addxmW=150510B; addxmL=150610B;
- andB=140000B; andW=140100B; andL=140200B;
- andmB=140400B; andmW=140500B; andmL=140600B;
- andiB=001000B; andiW=001100B; andiL=001200B;
- andiCCR=001074B; andiSR=001174B;
- aslB=160440B; aslW=160540B; aslL=160640B;
- asliB=160400B; asliW=160500B; asliL=160600B;
- aslmW=160700B;
- asrB=160040B; asrW=160140B; asrL=160240B;
- asriB=160000B; asriW=160100B; asriL=160200B;
- asrmW=160300B;
- bcc=062000B; bcs=062400B; beq=063400B; bge=066000B; bgt=067000B;
- bhi=061000B; ble=067400B; bls=061400B; blt=066400B; bmi=065400B;
- bne=063000B; bpl=065000B; bvc=064000B; bvs=064400B;
- bchg=000500B; bchgi=004100B;
- bclr=000600B; bclri=004200B;
- (* bkpt=044110B; *)
- bra=060000B;
- bset=000700B; bseti=004300B;
- bsr=060400B;
- btst=000400B; btsti=004000B;
- chkW=040600B;
- clrB=041000B; clrW=041100B; clrL=041200B;
- cmpB=130000B; cmpW=130100B; cmpL=130200B;
- cmpaW=130300B; cmpaL=130700B;
- cmpiB=006000B; cmpiW=006100B; cmpiL=006200B;
- cmpmB=130410B; cmpmW=130510B; cmpmL=130610B;
- dbcc=052310B; dbcs=052710B; dbeq=053710B; dbf=050710B; dbge=056310B;
- dbgt=057310B; dbhi=051310B; dble=057710B; dbls=051710B; dblt=056710B;
- dbmi=055710B; dbne=053310B; dbpl=055310B; dbt=050310B; dbvc=054310B;
- dbvs=054710B;
- dbra=050710B;
- divsW=100700B;
- divuW=100300B;
- eorB=130400B; eorW=130500B; eorL=130600B;
- eoriB=005000B; eoriW=005100B; eoriL=005200B;
- eoriCCR=005074B; eoriSR=005174B;
- exgAA=140510B; exgDA=140610B; exgDD=140500B;
- extW=044200B; extL=044300B;
- illegal=045374B;
- jmp=047300B;
- jsr=047200B;
- lea=040700B;
- linkW=047120B;
- lslB=160450B; lslW=160550B; lslL=160650B;
- lsliB=160410B; lsliW=160510B; lsliL=160610B;
- lslmW=161700B;
- lsrB=160050B; lsrW=160150B; lsrL=160250B;
- lsriB=160010B; lsriW=160110B; lsriL=160210B;
- lsrmW=161300B;
- moveB=010000B; moveW=030000B; moveL=020000B;
- moveCCRfr=041300B; moveCCRto=042300B;
- moveSRfr=040300B; moveSRto=043300B;
- moveUSPfr=047150B; moveUSPto=047140B;
- moveaW=030100B; moveaL=020100B;
- movecLfr=047172B; movecLto=047173B;
- movemW=046200B; movemL=046300B;
- movemmW=044200B; movemmL=044300B;
- movepW=000410B; movepL=000510B;
- movepmW=000610B; movepmL=000710B;
- moveqL=070000B;
- movesB=007000B; movesW=007100B; movesL=007200B;
- mulsW=140700B;
- muluW=140300B;
- nbcdB=044000B;
- negB=042000B; negW=042100B; negL=042200B;
- negxB=040000B; negxW=040100B; negxL=040200B;
- nop=047161B;
- notB=043000B; notW=043100B; notL=043200B;
- orB=100000B; orW=100100B; orL=100200B;
- ormB=100400B; ormW=100500B; ormL=100600B;
- oriB=000000B; oriW=000100B; oriL=000200B;
- oriCCR=000074B;
- oriSR=000174B;
- pea=044100B;
- reset=047160B;
- rolB=160470B; rolW=160570B; rolL=160670B;
- roliB=160430B; roliW=160530B; roliL=160630B;
- rolmW=163700B;
- rorB=160070B; rorW=160170B; rorL=160270B;
- roriB=160030B; roriW=160130B; roriL=160230B;
- rormW=163300B;
- roxlB=160460B; roxlW=160560B; roxlL=160660B;
- roxliB=160420B; roxliW=160520B; roxliL=160620B;
- roxlmW=162700B;
- roxrB=160060B; roxrW=160160B; roxrL=160260B;
- roxriB=160020B; roxriW=160120B; roxriL=160220B;
- roxrmW=162300B;
- rtd=047164B; rte=047163B; rtr=047167B; rts=047165B;
- sbcdB=100400B;
- sbcdmB=100410B;
- scc=052300B; scs=052700B; seq=053700B; sf=050700B; sge=056300B;
- sgt=057300B; shi=051300B; sle=057700B; sls=051700B; slt=056700B;
- smi=055700B; sne=053300B; spl=055300B; st=050300B; svc=054300B;
- svs=054700B;
- stop=047162B;
- subB=110000B; subW=110100B; subL=110200B;
- submB=110400B; submW=110500B; submL=110600B;
- subaW=110300B; subaL=110700B;
- subiB=002000B; subiW=002100B; subiL=002200B;
- subqB=050400B; subqW=050500B; subqL=050600B;
- subxB=110400B; subxW=110500B; subxL=110600B;
- subxmB=110410B; subxmW=110510B; subxmL=110610B;
- swapW=044100B;
- tasB=045300B;
- trap=047100B; trapv=047166B;
- tstB=045000B; tstW=045100B; tstL=045200B;
- unlk=047130B;
-
- END Assembler.
-