6809abc.txt Instruction set of the 6809 in alphabetical order 1989/WJvG addressing modes flags mnem immed direct index extend inheren explan h i n z v c ------------------------------------------------------------------------------------ abx -- - - -- - - -- - - -- - - 3a 1 1 x+=(uc)b - - - - - - adca 89 2 2 99 3 2 a9 4 2 b9 4 3 -- - - a+=m+c x - x x x x adcb c9 2 2 d9 3 2 e9 4 2 f9 4 3 -- - - b+=m+c x - x x x x adda 8b 2 2 9b 3 2 ab 4 2 bb 4 3 -- - - a+=m x - x x x x addb cb 2 2 db 3 2 eb 4 2 fb 4 3 -- - - b+=m x - x x x x addd c3 3 3 d3 4 2 e3 5 2 f3 5 3 -- - - d+=m - - x x x x anda 84 2 2 94 3 2 a4 4 2 b4 4 3 -- - - a&=m - - x x 0 - andb c4 2 2 d4 3 2 e4 4 2 f4 4 3 -- - - b&=m - - x x 0 - andcc 1c 3 2 -- - - -- - - -- - - -- - - cc&=im 6 6 6 6 6 6 asl -- - - -- - - 68 6 2 78 6 3 -- - - m<<=1 - - x x x x asla -- - - -- - - -- - - -- - - 48 1 1 a<<=1 - - x x x x aslb -- - - -- - - -- - - -- - - 58 1 1 b<<=1 - - x x x x asr -- - - -- - - 67 6 2 77 6 3 -- - - (i)m>>=1 - - x x x x asra -- - - -- - - -- - - -- - - 47 1 1 (i)a>>=1 - - x x x x asrb -- - - -- - - -- - - -- - - 57 1 1 (i)b>>=1 - - x x x x bcc 24 3 2 -- - - -- - - -- - - -- - - bra(cc) - - - - - - bcs 25 3 2 -- - - -- - - -- - - -- - - bra(cs) - - - - - - beq 27 3 2 -- - - -- - - -- - - -- - - bra(eq) - - - - - - bge 2c 3 2 -- - - -- - - -- - - -- - - bra(ge) - - - - - - bgt 2e 3 2 -- - - -- - - -- - - -- - - bra(gt) - - - - - - bhi 22 3 2 -- - - -- - - -- - - -- - - bra(hi) - - - - - - bhs 24 3 2 -- - - -- - - -- - - -- - - bra(hs) - - - - - - bita 85 2 2 95 3 2 a5 4 2 b5 4 3 -- - - a&m - - x x 0 - bitb c5 2 2 d5 3 2 e5 4 2 f5 4 3 -- - - b&m - - x x 0 - ble 2f 3 2 -- - - -- - - -- - - -- - - bra(le) - - - - - - blo 25 3 2 -- - - -- - - -- - - -- - - bra(lo) - - - - - - bls 23 3 2 -- - - -- - - -- - - -- - - bra(ls) - - - - - - blt 2d 3 2 -- - - -- - - -- - - -- - - bra(lt) - - - - - - bmi 2b 3 2 -- - - -- - - -- - - -- - - bra(mi) - - - - - - bne 26 3 2 -- - - -- - - -- - - -- - - bra(ne) - - - - - - bpl 2a 3 2 -- - - -- - - -- - - -- - - bra(pl) - - - - - - bra 20 3 2 -- - - -- - - -- - - -- - - bra - - - - - - brn 21 3 2 -- - - -- - - -- - - -- - - bra( 0) - - - - - - bsr 8d 5 2 -- - - -- - - -- - - -- - - bsr - - - - - - bvc 28 3 2 -- - - -- - - -- - - -- - - bra(vc) - - - - - - bvs 29 3 2 -- - - -- - - -- - - -- - - bra(vs) - - - - - - clr -- - - -- - - 6f 5 2 7f 5 3 -- - - m=0 - - x x 0 0 clra -- - - -- - - -- - - -- - - 4f 1 1 a=0 - - x x 0 0 clrb -- - - -- - - -- - - -- - - 5f 1 1 b=0 - - x x 0 0 cmpa 81 2 2 91 3 2 a1 4 2 b1 4 3 -- - - a-m - - x x x x cmpb c1 2 2 d1 3 2 e1 4 2 f1 4 3 -- - - b-m - - x x x x cmpd 1083 5 4 1093 7 3 10a3 7 3 10b3 8 4 -- - - d-m - x x x x x cmps 118c 3 3 119c 4 2 11ac 5 2 11bc 5 3 -- - - d-m - - x x x x cmpu 1183 5 4 1193 7 3 11a3 7 3 11b3 8 4 -- - - u-m - x x x x x cmpx 8c 3 3 9c 4 2 ac 5 2 bc 5 3 -- - - x-m - - x x x x cmpy 108c 3 3 109c 4 2 10ac 5 2 10bc 5 3 -- - - y-m - - x x x x com -- - - -- - - 63 6 2 73 6 3 -- - - m=~m - - x x 0 1 coma -- - - -- - - -- - - -- - - 43 1 1 a=~a - - x x 0 1 comb -- - - -- - - -- - - -- - - 53 1 1 b=~b - - x x 0 1 cwai 3c ? 2 -- - - -- - - -- - - -- - - cc&=im;wait 7 6 6 6 6 6 daa -- - - -- - - -- - - -- - - 19 2 1 a=da(a) - - x x x 3 dec -- - - -- - - 6a 6 2 7a 6 3 -- - - m-=1 - - x x x - deca -- - - -- - - -- - - -- - - 4a 1 1 a-=1 - - x x x - decb -- - - -- - - -- - - -- - - 5a 1 1 b-=1 - - x x x - eora 88 2 2 98 3 2 a8 4 2 b8 4 3 -- - - a^=m - - x x 0 - eorb c8 2 2 d8 3 2 e8 4 2 f8 4 3 -- - - b^=m - - x x 0 - exg 1e 8 2 -- - - -- - - -- - - -- - - r(n)<->r(n) - - - - - - inc -- - - -- - - 6c 6 2 7c 6 3 -- - - m+=1 - - x x x - inca -- - - -- - - -- - - -- - - 4c 1 1 a+=1 - - x x x - incb -- - - -- - - -- - - -- - - 5c 1 1 b+=1 - - x x x - jmp -- - - 0e 3 2 6e 3 2 7e 3 3 -- - - jmp - - - - - - jsr -- - - 9d 5 2 ad 5 2 bd 6 3 -- - - jsr - - - - - - lda 86 2 2 96 3 2 a6 4 2 b6 4 3 -- - - a=m - - x x 0 - ldb c6 2 2 d6 3 2 e6 4 2 f6 4 3 -- - - b=m - - x x 0 - ldd cc 3 3 dc 4 2 ec 5 2 fc 5 3 -- - - d=m - - x x 0 - lds 10ce 3 3 10de 4 2 10ee 5 2 10fe 5 3 -- - - s=m - - x x 0 - ldu ce 3 3 de 4 2 ee 5 2 fe 5 3 -- - - u=m - - x x 0 - ldx 8e 3 3 9e 4 2 ae 5 2 be 5 3 -- - - x=m - - x x 0 - ldy 108e 3 3 109e 4 2 10ae 5 2 10be 5 3 -- - - y=m - - x x 0 - leas -- - - -- - - 32 4 2 -- - - -- - - s=&m - - - - - - leau -- - - -- - - 33 4 2 -- - - -- - - s=&m - - - - - - leax -- - - -- - - 30 4 2 -- - - -- - - s=&m - - - x - - leay -- - - -- - - 31 4 2 -- - - -- - - s=&m - - - x - - lsr -- - - -- - - 64 6 2 74 6 3 -- - - (u)m>>=1 - - x x x x lsra -- - - -- - - -- - - -- - - 44 1 1 (u)a>>=1 - - x x x x lsrb -- - - -- - - -- - - -- - - 54 1 1 (u)b>>=1 - - x x x x mul -- - - -- - - -- - - -- - - 3d ? 1 d=a*b - - - x - 4 neg -- - - -- - - 60 6 2 70 6 3 -- - - m=-m - - x x x x nega -- - - -- - - -- - - -- - - 40 1 1 a=-a - - x x x x negb -- - - -- - - -- - - -- - - 50 1 1 b=-b - - x x x x nop -- - - -- - - -- - - -- - - 01 1 1 nop - - - - - - ora 8a 2 2 9a 3 2 aa 4 2 ba 4 3 -- - - a|=m - - x x 0 - orb ca 2 2 da 3 2 ea 4 2 fa 4 3 -- - - b|=m - - x x 0 - orcc 1a 3 2 -- - - -- - - -- - - -- - - cc|=im 6 6 6 6 6 6 pshs 34 ? 2 -- - - -- - - -- - - -- - - push rf - - - - - - pshu 36 ? 2 -- - - -- - - -- - - -- - - push rf - - - - - - puls 35 ? 2 -- - - -- - - -- - - -- - - pull rf - - - - - - pulu 37 ? 2 -- - - -- - - -- - - -- - - pull rf - - - - - - rol -- - - -- - - 69 6 2 79 6 3 -- - - m=rol(m) - - x x x x rola -- - - -- - - -- - - -- - - 49 1 1 a=rol(a) - - x x x x rolb -- - - -- - - -- - - -- - - 59 1 1 b=rol(b) - - x x x x ror -- - - -- - - 66 6 2 76 6 3 -- - - m=ror(m) - - x x x x rora -- - - -- - - -- - - -- - - 46 1 1 a=ror(a) - - x x x x rorb -- - - -- - - -- - - -- - - 56 1 1 b=ror(b) - - x x x x rti -- - - -- - - -- - - -- - - 3b a 1 rti x x x x x x rts -- - - -- - - -- - - -- - - 39 5 1 rts - - - - - - sbca 82 2 2 92 3 2 a2 4 2 b2 4 3 -- - - a-=m+c - - x x x x sbcb c2 2 2 d2 3 2 e2 4 2 f2 4 3 -- - - b-=m+c - - x x x x sex -- - - -- - - -- - - -- - - 1d 2 1 d=(sc)b - - x x 0 - sta -- - - 97 3 2 a7 4 2 b7 4 3 -- - - m=a - - x x 0 - stb -- - - d7 3 2 e7 4 2 f7 4 3 -- - - m=b - - x x 0 - std -- - - dd 4 2 ed 5 2 fd 5 3 -- - - m=d - - x x 0 - sts -- - - 10df 4 2 10ef 5 2 10ff 5 3 -- - - s=m - - x x 0 - stu -- - - df 4 2 ef 5 2 ff 5 3 -- - - u=m - - x x 0 - stx -- - - 9f 4 2 af 5 2 bf 5 3 -- - - x=m - - x x 0 - sty -- - - 109f 4 2 10af 5 2 10bf 5 3 -- - - y=m - - x x 0 - suba 80 2 2 90 3 2 a0 4 2 b0 4 3 -- - - a-=m - - x x x x subb c0 2 2 d0 3 2 e0 4 2 f0 4 3 -- - - b-=m - - x x x x subd 83 3 3 93 4 2 a3 5 2 b3 5 3 -- - - d-=m - - x x x x swi -- - - -- - - -- - - -- - - 3f ? 1 swi - 1 - - - - swi2 -- - - -- - - -- - - -- - - 103f ? 2 swi - 1 - - - - swi3 -- - - -- - - -- - - -- - - 113f ? 2 swi - 1 - - - - sync -- - - -- - - -- - - -- - - 13 ? 1 sync to int - - - - - - tfr 1f 6 2 -- - - -- - - -- - - -- - - r(n)=r(n) - - - - - - tst -- - - -- - - 6d 4 2 7d 4 3 -- - - m-0 - - x x 0 0 tsta -- - - -- - - -- - - -- - - 4d 1 1 a-0 - - x x 0 0 tstb -- - - -- - - -- - - -- - - 5d 1 1 b-0 - - x x 0 0 cc notes: - not changed x updated according to data 0 set to 0 1 set to 1 3 c|=(msn>9) 4 Most significant bit of b. 5 Set when interrupt occurs. If previously set, a Non-Maskable interrupt is required to exit the wait state.