6800

  • September 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 6800 as PDF for free.

More details

  • Words: 1,443
  • Pages: 5
---------------------------------------------------------------| | | | | Motorola | | | | 666 88888 000 000 | | 6 8 8 0 0 0 0 | | 6 8 8 0 0 0 0 0 0 | | 666666 88888 0 0 0 0 0 0 | | 6 6 8 8 0 0 0 0 0 0 | | 6 6 8 8 0 0 0 0 | | 66666 88888 000 000 | | | | 6800 MICROPROCESSOR Instruction Set Summary | | | | | | | | | | | | _________ _________ | | _| \__/ |_ _____ | | Vss |_|1 40|_| RESET <-| | ____ _| |_ | | --> HALT |_|2 39|_| TSC <-| | _| |_ | | --> PHI1 |_|3 38|_| NC | | ___ _| |_ | | --> IRQ |_|4 37|_| PHI2 <-| | _| |_ | | <-- VMA |_|5 36|_| DBE <-| | ___ _| |_ | | --> NMI |_|6 35|_| NC | | _| |_ _ | | <-- BA |_|7 34|_| R/W --> | | _| |_ | | Vcc |_|8 33|_| D0 <--> | | _| |_ | | <-- A0 |_|9 32|_| D1 <--> | | _| |_ | | <-- A1 |_|10 6800 31|_| D2 <--> | | _| |_ | | <-- A2 |_|11 30|_| D3 <--> | | _| |_ | | <-- A3 |_|12 29|_| D4 <--> | | _| |_ | | <-- A4 |_|13 28|_| D5 <--> | | _| |_ | | <-- A5 |_|14 27|_| D6 <--> | | _| |_ | | <-- A6 |_|15 26|_| D7 <--> | | _| |_ | | <-- A7 |_|16 25|_| A15 --> | | _| |_ | | <-- A8 |_|17 24|_| A14 --> | | _| |_ | | <-- A9 |_|18 23|_| A13 --> | | _| |_ | | <-- A10 |_|19 22|_| A12 --> |

| _| |_ | | <-- A11 |_|20 21|_| Vss | | |______________________| | | | | | | | | | | | | | |Written by Jonathan Bowen | | Programming Research Group | | Oxford University Computing Laboratory | | 8-11 Keble Road | | Oxford OX1 3QD | | England | | | | Tel +44-865-273840 | | | |Created August 1981 | |Updated April 1985 | |Issue 1.4 Copyright (C) J.P.Bowen 1985| ------------------------------------------------------------------------------------------------------------------------------|Mnem. |Op|HINZVC|IEXD#R|~|Description |Notes | |------+--+------+------+-+-----------------------+------------| |ABA |1B|*-****|X |2|Add accumulators |A=A+B | |ADCA s|B9|*-****| XXXX |4|Add with Carry |A=A+s+C | |ADCB s|F9|*-****| XXXX |4|Add with Carry |B=B+s+C | |ADDA s|BB|*-****| XXXX |4|Add |A=A+s | |ADDB s|FB|*-****| XXXX |4|Add |B=B+s | |ANDA s|B4|--**0-| XXXX |4|Logical AND |A=A&s | |ANDB s|F4|--**0-| XXXX |4|Logical AND |B=B&s | |ASL d|78|--****| XX |6|Arithmetic Shift Left |d=d*2 | |ASLA |48|--****|X |2|Arithmetic Shift Left |A=A*2 | |ASLB |58|--****|X |2|Arithmetic Shift Left |B=B*2 | |ASR d|77|--****| XX |6|Arithmetic Shift Right |d=d/2 | |ASRA |47|--****|X |2|Arithmetic Shift Right |A=A/2 | |ASRB |57|--****|X |2|Arithmetic Shift Right |B=B/2 | |BCC a|24|------| X|4|Branch if Carry Clear |If C=0 | |BCS a|25|------| X|4|Branch if Carry Set |If C=1 | |BEQ a|27|------| X|4|Branch if Equal |If Z=1 | |BGE a|2C|------| X|4|Branch if Greater or Eq|If NxV=0 | |BGT a|2E|------| X|4|Branch if Greater Than |If Zv{NxV}=0| |BHI a|22|------| X|4|Branch if Higher |If CvZ=0 | |BITA s|B5|--**0-| XXXX |4|Bit Test |A&s | |BITB s|F5|--**0-| XXXX |4|Bit Test |B&s | |BLE a|2F|------| X|4|Branch if Less or Equal|If Zv{NxV}=0| |BLS a|23|------| X|4|Branch if Lower or Same|If CvZ=1 | |BLT a|2D|------| X|4|Branch if Less Than |If NxV=1 | |BMI a|2B|------| X|4|Branch if Minus |If N=1 | |BNE a|26|------| X|4|Branch if Not Equal |If Z=0 | |BPL a|2A|------| X|4|Branch if Plus |If N=0 | |BRA a|20|------| X|4|Branch Always |PC=a | |BSR a|8D|------| X|8|Branch to Subroutine |-[S]=PC,PC,a| |BVC a|28|------| X|4|Branch if Overflow Clr |If V=0 | |BVS a|29|------| X|4|Branch if Overflow Set |If V=1 | |CBA |11|--****|X |2|Compare accumulators |A-B | |CLC |0C|-----0|X |2|Clear Carry |C=0 |

|CLI |0E|-0----|X |2|Clear Interrupt Mask |I=0 | |CLR d|7F|--0100| XX |6|Clear |d=0 | |CLRA |4F|--0100|X |2|Clear accumulator |A=0 | |CLRB |5F|--0100|X |2|Clear accumulator |B=0 | |CLV |0A|----0-|X |2|Clear Overflow |V=0 | |CMPA s|B1|--****| XXXX |4|Compare |A-s | |CMPB s|F1|--****| XXXX |4|Compare |B-s | |COM d|63|--**01| XX |7|Complement |d=~d | |COMA |43|--**01|X |2|Complement accumulator |A=~A | |COMB |53|--**01|X |2|Complement accumulator |B=~B | |CPX s|BC|--****| XXX* |5|Compare Index Register |X-s | |DAA |19|--****|X |2|Decimal Adjust Acc. |A=BCD format| |DEC d|7A|--**?-| XX |6|Decrement |d=d-1 | |DECA |4A|--**?-|X |2|Decrement accumulator |A=A-1 | |DECB |5A|--**?-|X |2|Decrement accumulator |B=B-1 | |DES |34|------|X |4|Decrement Stack Pointer|S=S-1 | |DEX |09|---*--|X |4|Decrement Index Reg. |X=X-1 | |EORA s|B8|--**0-| XXXX |4|Logical Exclusive OR |A=Axs | |EORB s|F8|--**0-| XXXX |4|Logical Exclusive OR |B=Bxs | |INC d|7C|--**?-| XX |6|Increment |d=d+1 | |INCA |4C|--**?-|X |2|Increment accumulator |A=A+1 | |INCB |5C|--**?-|X |2|Increment accumulator |B=B+1 | |INS |31|------|X |4|Increment Stack Pointer|S=S+1 | |INX |08|---*--|X |4|Increment Index Reg. |X=X+1 | |JMP d|7E|------| XX |3|Jump |PC=d | |JSR d|BD|------| XX |9|Jump to Subroutine |-[S]=PC,PC=d| |LDAA s|B6|--**0-| XXXX |4|Load Accumulator |A=s | |LDAB s|F6|--**0-| XXXX |4|Load Accumulator |B=s | |LDS s|BE|--**0-| XXX* |5|Load Stack Pointer |S=s | |LDX s|FE|--**0-| XXX* |5|Load Index Register |X=s | |LSR d|74|--0***| XX |6|Logical Shift Right |d=->{0,d,C} | |LSRA |44|--0***|X |2|Logical Shift Right |A=->{0,A,C} | |LSRB |54|--0***|X |2|Logical Shift Right |B=->{0,B,C} | |NEG d|70|--****| XX |6|Negate |d=-d | |NEGA |40|--****|X |2|Negate accumulator |A=-A | |NEGB |50|--****|X |2|Negate accumulator |B=-B | |NOP |01|------|X |2|No Operation | | |ORAA s|BA|--**0-| XXXX |4|Logical inclusive OR |A=Avs | |ORAB s|FA|--**0-| XXXX |4|Logical inclusive OR |B=Bvs | |PSHA |36|------|X |4|Push |-[S]=A | |PSHB |37|------|X |4|Push |-[S]=B | |PULA |32|------|X |4|Pull |A=[S]+ | |PULB |33|------|X |4|Pull |B=[S]+ | ------------------------------------------------------------------------------------------------------------------------------|Mnem. |Op|HINZVC|IEXD#R|~|Description |Notes | |------+--+------+------+-+-----------------------+------------| |ROL d|79|--**?*| XX |6|Rotate Left |d={C,d}<| |ROLA |49|--**?*|X |2|Rotate Left accumulator|A={C,A}<| |ROLB |59|--**?*|X |2|Rotate Left accumulator|B={C,B}<| |ROR d|76|--**?*| XX |6|Rotate Right |d=->{C,d} | |RORA |46|--**?*|X |2|Rotate Right acc. |A=->{C,A} | |RORB |56|--**?*|X |2|Rotate Right acc. |B=->{C,B} | |RTI |3B|??????|X |A|Return from Interrupt |{regs}=[S]+ | |RTS |39|------|X |5|Return from Subroutine |PC=[S]+ | |SBA |10|--****|X |2|Subtract accumulators |A=A-B | |SBCA s|B2|--****| XXXX |4|Subtract with Carry |A=A-s-C | |SBCB s|F2|--****| XXXX |4|Subtract with Carry |B=B-s-C |

|SEC |0D|-----1|X |2|Set Carry |C=1 | |SEI |0F|-1----|X |2|Set Interrupt Mask |I=1 | |SEV |0B|----1-|X |2|Set Overflow |V=1 | |STAA d|B7|--**0-| XXX |5|Store Accumulator |d=A | |STAB d|F7|--**0-| XXX |5|Store Accumulator |d=B | |STS d|BF|--**0-| XXX |6|Store Stack Pointer |d=S | |STX d|FF|--**0-| XXX |6|Store Index Register |d=X | |SUBA s|B0|--****| XXXX |4|Subtract |A=A-s | |SUBB s|F0|--****| XXXX |4|Subtract |B=B-s | |SWI |3F|-1----|X |C|Software Interrupt |-[S]={regs} | |TAB |17|--**0-|X |2|Transfer accumulators |B=A | |TAP |06|******|X |2|Transfer to CCR |P=A | |TBA |17|--**0-|X |2|Transfer accumulators |A=B | |TPA |07|------|X |2|Transfer from CCR |A=P | |TST s|7D|--**00| XX |6|Test |s | |TSTA |4D|--**00|X |2|Test accumulator |A | |TSTB |5D|--**00|X |2|Test accumulator |B | |TSX |30|------|X |4|Transfer Stack Pointer |X=S | |TXS |35|------|X |4|Transfer Index Register|S=X | |WAI |3E|-*----|X |9|Wait for Interrupt |-[S]={regs} | |---------+------+------+-+------------------------------------| | CCR |-*01? | | |Unaffect/affected/reset/set/unknown | | H |H | | |Half carry (Bit 5) | | I | I | | |Interrupt mask (Bit 4) | | N | N | | |Negative (Bit 3) | | Z | Z | | |Zero (Bit 2) | | V | V | | |Overflow (Bit 1) | | C | C| | |Carry (Bit 0) | |----------------+------+-+------------------------------------| | |I | |Inherent | | nn,E | E | |Extended (Op=E, ~s=e) | | nn,X | X | |Index (Op=E-10H, ~s=e+1, JSR ~s=e-1)| | n,D | D | |Direct (Op=E-20H, ~s=e-1) | | #n | # | |Immediate (8-bit, Op=E-30H, ~s=e-2) | | #nn | * | |Immediate (16-bit, Op=E-30H, ~s=e-2)| | a | R| |Relative (PC=PC+2+offset) | |-------------------------+------------------------------------| |DIRECT |Direct addressing mode | |EXTEND |Extended addressing mode | |FCB n |Form Constant Byte | |FCC 'string' |Form Constant Characters | |FDB nn |Form Double Byte | |RMB nn |Reserve Memory Bytes | |-------------------------+------------------------------------| | A B |Accumulators (8-bit) | | P |Condition Code Register (CCR, 8-bit)| | PC |Program Counter (16-bit) | | S |Stack Pointer (16-bit) | | X |Index Register (16-bit) | |-------------------------+------------------------------------| | a |Relative address (-125 to +129) | | d s |Destination/source | | n nn |8/16-bit expression (0 to 255/65535)| | + - * / |Add/subtract/multiply/divide | | & ~ v x |AND/NOT/inclusive OR/exclusive OR | | <- -> |Rotate left/right | | [ ] |Indirect addressing | | [ ]+ -[ ] |Indirect auto-increment/decrement |

| { } |Combination of operands | | {regs} |All registers {PC,X,A,B,P} | |-------------------------+------------------------------------| | FFF8H to FFF9H |Hardware interrupt vector | | FFFAH to FFFBH |SWI instruction interrupt vector | | FFFCH to FFFDH |Non-maskable interrupt vector | | FFFEH to FFFFH |Reset vector | ----------------------------------------------------------------

Related Documents

6800
September 2019 8
6800.pdf
August 2019 8
Big Hammer 6800 User
November 2019 3