6303sys.txt Instruction set of the 6303 in systematical order From Hitachi databook 1988/wjvg addressing modes flags oper mnem immed direct index extend implied explan h i n z v c --------------------------------------------------------------------------- add adda 8b 2 2 9b 3 2 ab 4 2 bb 4 3 -- - - a+=m u - u u u u addb cb 2 2 db 3 2 eb 4 2 fb 4 3 -- - - b+=m u - u u u u addd c3 3 3 d3 4 2 e3 5 2 f3 5 3 -- - - d+=m - - u u u u aba -- - - -- - - -- - - -- - - 1b 1 1 a+=b u - u u u u adc adca 89 2 2 99 3 2 a9 4 2 b9 4 3 -- - - a+=m+c u - u u u u adcb c9 2 2 d9 3 2 e9 4 2 f9 4 3 -- - - b+=m+c u - u u u u and anda 84 2 2 94 3 2 a4 4 2 b4 4 3 -- - - a&=m - - u u 0 - andb c4 2 2 d4 3 2 e4 4 2 f4 4 3 -- - - b&=m - - u u 0 - bit bita 85 2 2 95 3 2 a5 4 2 b5 4 3 -- - - a&m - - u u 0 - bitb c5 2 2 d5 3 2 e5 4 2 f5 4 3 -- - - b&m - - u u 0 - clr clr -- - - -- - - 6f 5 2 7f 5 3 -- - - m=0 - - u u 0 0 clra -- - - -- - - -- - - -- - - 4f 1 1 a=0 - - u u 0 0 clrb -- - - -- - - -- - - -- - - 5f 1 1 b=0 - - u u 0 0 cmp cmpa 81 2 2 91 3 2 a1 4 2 b1 4 3 -- - - a-m - - u u u u cmpb c1 2 2 d1 3 2 e1 4 2 f1 4 3 -- - - b-m - - u u u u cba -- - - -- - - -- - - -- - - 11 1 1 a-b - - u u u u com com -- - - -- - - 63 6 2 73 6 3 -- - - m=~m - - u u 0 1 coma -- - - -- - - -- - - -- - - 43 1 1 a=~a - - u u 0 1 comb -- - - -- - - -- - - -- - - 53 1 1 b=~b - - u u 0 1 neg neg -- - - -- - - 60 6 2 70 6 3 -- - - m=-m - - u u u u nega -- - - -- - - -- - - -- - - 40 1 1 a=-a - - u u u u negb -- - - -- - - -- - - -- - - 50 1 1 b=-b - - u u u u daa daa -- - - -- - - -- - - -- - - 19 2 1 a=da(a) - - u u u 3 dec dec -- - - -- - - 6a 6 2 7a 6 3 -- - - m-=1 - - u u u - deca -- - - -- - - -- - - -- - - 4a 1 1 a-=1 - - u u u - decb -- - - -- - - -- - - -- - - 5a 1 1 b-=1 - - u u u - eor eora 88 2 2 98 3 2 a8 4 2 b8 4 3 -- - - a^=m - - u u 0 - eorb c8 2 2 d8 3 2 e8 4 2 f8 4 3 -- - - b^=m - - u u 0 - inc inc -- - - -- - - 6c 6 2 7c 6 3 -- - - m+=1 - - u u u - inca -- - - -- - - -- - - -- - - 4c 1 1 a+=1 - - u u u - incb -- - - -- - - -- - - -- - - 5c 1 1 b+=1 - - u u u - ld ldaa 86 2 2 96 3 2 a6 4 2 b6 4 3 -- - - a=m - - u u 0 - ldab c6 2 2 d6 3 2 e6 4 2 f6 4 3 -- - - b=m - - u u 0 - ldd cc 3 3 dc 4 2 ec 5 2 fc 5 3 -- - - d=m - - u u 0 - mul mul -- - - -- - - -- - - -- - - 3d 7 1 a:b=a*b - - - - - 4 or oraa 8a 2 2 9a 3 2 aa 4 2 ba 4 3 -- - - a|=m - - u u 0 - orab ca 2 2 da 3 2 ea 4 2 fa 4 3 -- - - b|=m - - u u 0 - push psha -- - - -- - - -- - - -- - - 36 4 1 *s--=a - - - - - - pshb -- - - -- - - -- - - -- - - 37 4 1 *s--=b - - - - - - pull pula -- - - -- - - -- - - -- - - 32 3 1 a=*++s - - - - - - pulb -- - - -- - - -- - - -- - - 33 3 1 b=*++s - - - - - - rol rol -- - - -- - - 69 6 2 79 6 3 -- - - m=rol(m) - - u u u u rola -- - - -- - - -- - - -- - - 49 1 1 a=rol(a) - - u u u u rolb -- - - -- - - -- - - -- - - 59 1 1 b=rol(b) - - u u u u ror ror -- - - -- - - 66 6 2 76 6 3 -- - - m=ror(m) - - u u u u rora -- - - -- - - -- - - -- - - 46 1 1 a=ror(a) - - u u u u rorb -- - - -- - - -- - - -- - - 56 1 1 b=ror(b) - - u u u u asl asl -- - - -- - - 68 6 2 78 6 3 -- - - m<<=1 - - u u u u asla -- - - -- - - -- - - -- - - 48 1 1 a<<=1 - - u u u u aslb -- - - -- - - -- - - -- - - 58 1 1 b<<=1 - - u u u u asld -- - - -- - - -- - - -- - - 05 1 1 d<<=1 - - u u u u asr asr -- - - -- - - 67 6 2 77 6 3 -- - - (i)m>>=1 - - u u u u asra -- - - -- - - -- - - -- - - 47 1 1 (i)a>>=1 - - u u u u asrb -- - - -- - - -- - - -- - - 57 1 1 (i)b>>=1 - - u u u u lsr lsr -- - - -- - - 64 6 2 74 6 3 -- - - (u)m>>=1 - - u u u u lsra -- - - -- - - -- - - -- - - 44 1 1 (u)a>>=1 - - u u u u lsrb -- - - -- - - -- - - -- - - 54 1 1 (u)b>>=1 - - u u u u lsrd -- - - -- - - -- - - -- - - 04 1 1 (u)d>>=1 - - u u u u st staa -- - - 97 3 2 a7 4 2 b7 4 3 -- - - m=a - - u u 0 - stab -- - - d7 3 2 e7 4 2 f7 4 3 -- - - m=b - - u u 0 - std -- - - dd 4 2 ed 5 2 fd 5 3 -- - - m=d - - u u 0 - sub suba 80 2 2 90 3 2 a0 4 2 b0 4 3 -- - - a-=m - - u u u u subb c0 2 2 d0 3 2 e0 4 2 f0 4 3 -- - - b-=m - - u u u u subd 83 3 3 93 4 2 a3 5 2 b3 5 3 -- - - d-=m - - u u u u sba -- - - -- - - -- - - -- - - 10 1 1 a-=b - - u u u u sbc sbca 82 2 2 92 3 2 a2 4 2 b2 4 3 -- - - a-=m+c - - u u u u sbcb c2 2 2 d2 3 2 e2 4 2 f2 4 3 -- - - b-=m+c - - u u u u tfr tab -- - - -- - - -- - - -- - - 16 1 1 b=a - - u u 0 - tba -- - - -- - - -- - - -- - - 17 1 1 a=b - - u u 0 - tst tst -- - - -- - - 6d 4 2 7d 4 3 -- - - m-0 - - u u 0 0 tsta -- - - -- - - -- - - -- - - 4d 1 1 a-0 - - u u 0 0 tstb -- - - -- - - -- - - -- - - 5d 1 1 b-0 - - u u 0 0 and aim -- - - 71 6 3 61 7 3 -- - - -- - - m&=im - - u u 0 - or oim -- - - 72 6 3 62 7 3 -- - - -- - - m|=im - - u u 0 - eor eim -- - - 75 6 3 65 7 3 -- - - -- - - m^=im - - u u 0 - tst tim -- - - 7b 4 3 6b 5 3 -- - - -- - - m-im - - u u 0 - cmp cpx 8c 3 3 9c 4 2 ac 5 2 bc 5 3 -- - - x-m - - u u u u dec dex -- - - -- - - -- - - -- - - 09 1 1 x-=1 - - - u - - des -- - - -- - - -- - - -- - - 34 1 1 s-=1 - - - - - - inc inx -- - - -- - - -- - - -- - - 08 1 1 x+=1 - - - u - - ins -- - - -- - - -- - - -- - - 31 1 1 s+=1 - - - - - - ld ldx ce 3 3 de 4 2 ee 5 2 fe 5 3 -- - - x=m - - u u 0 - lds 8e 3 3 9e 4 2 ae 5 2 be 5 3 -- - - s=m - - u u 0 - st stx -- - - df 4 2 ef 5 2 ff 5 3 -- - - m=x - - u u 0 - sts -- - - 9f 4 2 af 5 2 bf 5 3 -- - - m=s - - u u 0 - tfr txs -- - - -- - - -- - - -- - - 35 1 1 s=x-1 - - - - - - tsx -- - - -- - - -- - - -- - - 30 1 1 x=s+1 - - - - - - add abx -- - - -- - - -- - - -- - - 3a 1 1 x+=(uc)b - - - - - - push pshx -- - - -- - - -- - - -- - - 3c 5 1 *s--=x - - - - - - pull pulx -- - - -- - - -- - - -- - - 38 4 1 x=*++s - - - - - - exg xgdx -- - - -- - - -- - - -- - - 18 2 1 exg(d,x) - - - - - - bra bra 20 3 2 -- - - -- - - -- - - -- - - bra - - - - - - brn 21 3 2 -- - - -- - - -- - - -- - - bra( 0) - - - - - - 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) - - - - - - ble 2f 3 2 -- - - -- - - -- - - -- - - bra(le) - - - - - - bls 23 3 2 -- - - -- - - -- - - -- - - bra(ls) - - - - - - blt 2d 3 2 -- - - -- - - -- - - -- - - bra(lt) - - - - - - bmi 2b 3 2 -- - - -- - - -- - - -- - - bra(mi) - - - - - - bne 26 3 2 -- - - -- - - -- - - -- - - bra(ne) - - - - - - bvc 28 3 2 -- - - -- - - -- - - -- - - bra(vc) - - - - - - bvs 29 3 2 -- - - -- - - -- - - -- - - bra(vs) - - - - - - bpl 2a 3 2 -- - - -- - - -- - - -- - - bra(pl) - - - - - - bsr bsr 8d 5 2 -- - - -- - - -- - - -- - - bsr - - - - - - jmp jmp -- - - -- - - 6e 3 2 7e 3 3 -- - - jmp - - - - - - jsr jsr -- - - 9d 5 2 ad 5 2 bd 6 3 -- - - jsr - - - - - - nop nop -- - - -- - - -- - - -- - - 01 1 1 nop - - - - - - rts rti -- - - -- - - -- - - -- - - 3b a 1 rti u u u u u u rts -- - - -- - - -- - - -- - - 39 5 1 rts - - - - - - swi swi -- - - -- - - -- - - -- - - 3f c 1 swi - 1 - - - - wait wai -- - - -- - - -- - - -- - - 3e 9 1 wait - 5 - - - - slp -- - - -- - - -- - - -- - - 1a 4 1 sleep - - - - - - clr clc -- - - -- - - -- - - -- - - 0c 1 1 c=0 - - - - - 0 cli -- - - -- - - -- - - -- - - 0e 1 1 i=0 - 0 - - - - clv -- - - -- - - -- - - -- - - 0a 1 1 v=0 - - - - 0 - set sec -- - - -- - - -- - - -- - - 0d 1 1 c=1 - - - - - 1 sei -- - - -- - - -- - - -- - - 0f 1 1 i=1 - 1 - - - - sev -- - - -- - - -- - - -- - - 0b 1 1 v=1 - - - - 1 - tfr tap -- - - -- - - -- - - -- - - 06 1 1 ccr=a u u u u u u tpa -- - - -- - - -- - - -- - - 07 1 1 a=ccr - - - - - - cc notes: - not changed u 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.