mirror of
				https://github.com/larsbrinkhoff/awesome-cpus
				synced 2025-10-31 08:16:02 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			180 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 68000bin.txt
 | |
| Instruction set of the 68000 in binary order
 | |
| 1988/wjvg
 | |
| 
 | |
| 0                  2        3        4        5
 | |
| 0000 0000zz aaaaaa kkkkkkkk kkkkkkkk kifz==lk kifz==lk ori.z   #kz,a
 | |
| 0000 0010zz aaaaaa kkkkkkkk kkkkkkkk kifz==lk kifz==lk andi.z  #kz,a
 | |
| 0000 0100zz aaaaaa kkkkkkkk kkkkkkkk kifz==lk kifz==lk subi.z  #kz,a
 | |
| 0000 0110zz aaaaaa kkkkkkkk kkkkkkkk kifz==lk kifz==lk addi.z  #kz,a
 | |
| 0000 1010zz aaaaaa kkkkkkkk kkkkkkkk kifz==lk kifz==lk eori.z  #kz,a
 | |
| 0000 1100zz aaaaaa kkkkkkkk kkkkkkkk kifz==lk kifz==lk cmpi.z  #kz,a
 | |
| 
 | |
| 0000 100000 aaaaaa 00000000 000nnnnn                   btst    #n,a
 | |
| 0000 100001 aaaaaa 00000000 000nnnnn                   bchg    #n,a
 | |
| 0000 100010 aaaaaa 00000000 000nnnnn                   bclr    #n,a
 | |
| 0000 100011 aaaaaa 00000000 000nnnnn                   bset    #n,a
 | |
| 
 | |
| 0000 sss100 aaaaaa                                     btst    Ds,a
 | |
| 0000 sss101 aaaaaa                                     bchg    Ds,a
 | |
| 0000 sss110 aaaaaa                                     bclr    Ds,a
 | |
| 0000 sss111 aaaaaa                                     bset    Ds,a
 | |
| 
 | |
| 0000 ddd10z 001sss dddddddd dddddddd                   movep.z d16(As),Dd
 | |
| 0000 sss11z 001ddd dddddddd dddddddd                   movep.z Ds,d16(Ad)
 | |
| 
 | |
| 0001 dddddd ssssss (dddddd reversed)                   move.b  as,ad
 | |
| 0010 dddddd ssssss (dddddd reversed)                   move.l  as,ad
 | |
| 0011 dddddd ssssss (dddddd reversed)                   move.w  as,ad
 | |
| 
 | |
| 0100 0000zz aaaaaa                                     negx.z  a
 | |
| 0100 000011 aaaaaa                                     move    SR,a
 | |
| 0100 0010zz aaaaaa                                     clr.z   a
 | |
| 0100 0100zz aaaaaa                                     neg.z   a
 | |
| 0100 010011 aaaaaa                                     move    a,CCR
 | |
| 0100 0110zz aaaaaa                                     not.z   a
 | |
| 0100 011011 aaaaaa                                     move    a,SR
 | |
| 
 | |
| 0100 100000 aaaaaa                                     nbcd    a
 | |
| 0100 100001 000ddd                                     swap.w  Dd
 | |
| 0100 100001 aaaaaa                                     pea     a
 | |
| 0100 10001z 000ddd                                     ext.z   Dd
 | |
| 0100 10001z aaaaaa a6543210 d6543210                   movem.z reg-list,a
 | |
| 0100 1010zz aaaaaa                                     tst.z   a
 | |
| 0100 101011 aaaaaa                                     tas.b   a
 | |
| 0100 11001z aaaaaa a6543210 d6543210                   movem.z a,reg-list
 | |
| 0100 111001 00vvvv                                     trap    #vector
 | |
| 0100 111001 010sss dddddddd dddddddd                   link    As,#k16
 | |
| 0100 111001 011ddd                                     unlk    Ad
 | |
| 0100 111001 100sss                                     move    As,USP
 | |
| 0100 111001 101ddd                                     move    USP,Ad
 | |
| 0100 111001 110000                                     reset
 | |
| 0100 111001 110001                                     nop
 | |
| 0100 111001 110010 kkkkkkkk kkkkkkkk                   stop    #k16
 | |
| 0100 111001 110011                                     rte
 | |
| 0100 111001 110101                                     rts
 | |
| 0100 111001 110110                                     trapv
 | |
| 0100 111001 110111                                     rtr
 | |
| 0100 111010 aaaaaa                                     jsr     a
 | |
| 0100 111011 aaaaaa                                     jmp     a
 | |
| 
 | |
| 0100 ddd110 aaaaaa                                     chk.w   a,Dd
 | |
| 0100 ddd111 aaaaaa                                     lea     a,Ad
 | |
| 
 | |
| 0101 cccc11 001sss llllllll llllllll                   db(cc)  Ds,label
 | |
| 0101 cccc11 aaaaaa                                     stcc.b  a
 | |
| 0101 kkk0zz aaaaaa                                     addq.z  #k3,a
 | |
| 0101 kkk1zz aaaaaa                                     subq.z  #k3,a
 | |
| 0110 0000ll llllll if zero, a 16bit address follows    bra     label
 | |
| 0110 0001ll llllll if zero, a 16bit address follows    bsr     label
 | |
| 0110 ccccll llllll if zero, a 16bit address follows    bcc     label
 | |
| 0111 ddd0kk kkkkkk                                     moveq.l #k8,Dd
 | |
| 
 | |
| 1000 ddd0zz aaaaaa                                     or.z    a,Dd
 | |
| 1000 ddd011 aaaaaa                                     divu.w  a,Dd
 | |
| 1000 ddd100 000sss                                     sbcd    Ds,Dd
 | |
| 1000 ddd100 001sss                                     sbcd    -(As),-(Ad)
 | |
| 1000 sss1zz aaaaaa                                     or.z    Ds,a
 | |
| 1000 ddd111 aaaaaa                                     divs.w  a,Dd
 | |
| 
 | |
| 1001 ddd0zz aaaaaa                                     sub.z   a,Dd
 | |
| 1001 ddd1zz 000sss                                     subx.z  Ds,Dd
 | |
| 1001 ddd1zz 001sss                                     subx.z  -(As),-(Ad)
 | |
| 1001 sss1zz aaaaaa                                     sub.z   Ds,a
 | |
| 1001 dddz11 aaaaaa                                     suba.z  a,Ad
 | |
| 
 | |
| 1011 ddd0zz aaaaaa                                     cmp.z   a,Dd
 | |
| 1011 ddd1zz 000sss                                     cmpm.z  Ds,Dd
 | |
| 1011 ddd1zz 001sss                                     cmpm.z  (As)+,(Ad)+
 | |
| 1011 ddd1zz aaaaaa                                     eor.z   a,Dd
 | |
| 1011 dddz11 aaaaaa                                     cmpa.z  a,Ad
 | |
| 
 | |
| 1100 ddd0zz aaaaaa                                     and.z   a,Dd
 | |
| 1100 ddd011 aaaaaa                                     mulu.w  a,Dd
 | |
| 1100 ddd100 000sss                                     abcd    Ds,Dd
 | |
| 1100 ddd101 000sss                                     exg.l   Ds,Dd
 | |
| 1100 ddd100 001sss                                     abcd    -(As),-(Ad)
 | |
| 1100 ddd101 001sss                                     exg.l   As,Ad
 | |
| 1100 ddd110 001sss                                     exg.l   As,Dd
 | |
| 1100 sss1zz aaaaaa                                     and.z   Ds,a
 | |
| 1100 ddd111 aaaaaa                                     muls.w  a,Dd
 | |
| 
 | |
| 1101 ddd0zz aaaaaa                                     add.z   a,Dd
 | |
| 1101 ddd1zz 000sss                                     addx.z  Ds,Dd
 | |
| 1101 ddd1zz 001sss                                     addx.z  -(As),-(Ad)
 | |
| 1101 sss1zz aaaaaa                                     add.z   Ds,a
 | |
| 1101 dddz11 aaaaaa                                     adda.z  a,Ad
 | |
| 
 | |
| 1110 kkk0zz 000ddd                                     asrd.z  #k,Dd
 | |
| 1110 kkk0zz 001ddd                                     lsrd.z  #k,Dd
 | |
| 1110 kkk0zz 010ddd                                     roxrd.z #k,Dd
 | |
| 1110 kkk0zz 011ddd                                     rord.z  #k,Dd
 | |
| 1110 kkk1zz 000ddd                                     asld.z  #k,Dd
 | |
| 1110 kkk1zz 001ddd                                     lsld.z  #k,Dd
 | |
| 1110 kkk1zz 010ddd                                     roxld.z #k,Dd
 | |
| 1110 kkk1zz 011ddd                                     rold.z  #k,Dd
 | |
| 
 | |
| 1110 sss0zz 100ddd                                     asrd.z  Ds,Dd
 | |
| 1110 sss0zz 101ddd                                     lsrd.z  Ds,Dd
 | |
| 1110 sss0zz 110ddd                                     roxrd.z Ds,Dd
 | |
| 1110 sss0zz 111ddd                                     rord.z  Ds,Dd
 | |
| 1110 sss1zz 100ddd                                     asld.z  Ds,Dd
 | |
| 1110 sss1zz 101ddd                                     lsld.z  Ds,Dd
 | |
| 1110 sss1zz 110ddd                                     roxld.z Ds,Dd
 | |
| 1110 sss1zz 111ddd                                     rold.z  Ds,Dd
 | |
| 
 | |
| 1110 000011 aaaaaa                                     asrd.w  #1,a
 | |
| 1110 000111 aaaaaa                                     asld.w  #1,a
 | |
| 1110 001011 aaaaaa                                     lsrd.w  #1,a
 | |
| 1110 001111 aaaaaa                                     lsld.w  #1,a
 | |
| 1110 010011 aaaaaa                                     roxrd.w #1,a
 | |
| 1110 010111 aaaaaa                                     roxld.w #1,a
 | |
| 1110 011011 aaaaaa                                     rord.w  #1,a
 | |
| 1110 011111 aaaaaa                                     rold.w  #1,a
 | |
| 
 | |
| general subfields
 | |
| 
 | |
| zz   00=b, 01=w, 10=l
 | |
| z    0=w, 1=l
 | |
| kkk  immediate data in addq etc.: 0==8
 | |
|      immediate data in movq is sign extended to 32bits
 | |
|      shift count also represents 1..8 (how?)
 | |
| 
 | |
| addressing modes (aaaaaa):
 | |
| 
 | |
| 000 rrr  Dr
 | |
| 001 rrr  Ar
 | |
| 010 rrr  (Ar)
 | |
| 011 rrr  (Ar)+
 | |
| 100 rrr  -(Ar)
 | |
| 101 rrr  d16(Ar)     dddddddd dddddddd
 | |
| 110 rrr  d8(Ar,ix)   aiiiz000 dddddddd
 | |
| 111 000  addr16      dddddddd dddddddd
 | |
| 111 001  addr32      dddddddd dddddddd ddddddddd dddddddd
 | |
| 111 010  d16(PC)     dddddddd dddddddd
 | |
| 111 011  d8(PC,ix)   aiiiz000 dddddddd
 | |
| 111 100  imm/implied
 | |
| 
 | |
| flags:
 | |
| 
 | |
| 0000  t   allways or bra ipv btr
 | |
| 0001  f   never or bsr ipv bnv
 | |
| 0010  hi
 | |
| 0011  ls
 | |
| 0100  cc
 | |
| 0101  cs
 | |
| 0110  ne
 | |
| 0111  eq
 | |
| 1000  vc
 | |
| 1001  vs
 | |
| 1010  pl
 | |
| 1011  mi
 | |
| 1100  ge
 | |
| 1101  lt
 | |
| 1110  gt
 | |
| 1111  le
 | |
| 
 | |
| *end
 | |
| 
 | |
| 
 | 
