---------------------------------------------------------------- | | | | | Texas Instruments | | | | 99999 99999 000 000 | | 9 9 9 9 0 0 0 0 | | 9 9 9 9 0 0 0 0 0 0 | | 999999 999999 0 0 0 0 0 0 | | 9 9 0 0 0 0 0 0 | | 9 9 0 0 0 0 | | 9999 9999 000 000 | | | | 9900 MICROPROCESSOR Instruction Set Summary | | | | | | | | | | | | | | | | | | _________ _________ | | | \__/ | | | Vbb -|1 64|- ~HOLD | | Vcc -|2 63|- ~MEMEN | | WAIT -|3 62|- READY | | ~LOAD -|4 61|- ~WE | | HOLDA -|5 60|- CRUCLK | | ~RESET -|6 59|- Vcc | | IAQ -|7 58|- NC | | CLK1 -|8 57|- NC | | CLK2 -|9 56|- D15 | | A14 -|10 55|- D14 | | A13 -|11 54|- D13 | | A12 -|12 53|- D12 | | A11 -|13 52|- D11 | | A10 -|14 51|- D10 | | A9 -|15 50|- D9 | | A8 -|16 9900 49|- D8 | | A7 -|17 48|- D7 | | A6 -|18 47|- D6 | | A5 -|19 46|- D5 | | A4 -|20 45|- D4 | | A3 -|21 44|- D3 | | A2 -|22 43|- D2 | | A1 -|23 42|- D1 | | A0 -|24 41|- D0 | | CLK4 -|25 40|- Vss | | Vss -|26 39|- NC | | Vdd -|27 38|- NC | | CLK3 -|28 37|- NC | | DBIN -|29 36|- IC0 | | CRUOUT -|30 35|- IC1 | | CRUIN -|31 34|- IC2 | | ~INTREQ -|32 33|- IC3 | | |______________________| | | | | | | | | | | | | | | | | | | | | | |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.2 Copyright (C) J.P.Bowen 1985| ---------------------------------------------------------------- ---------------------------------------------------------------- |Mnemonic|Code|IXPVCEAL|F|Z|Description | |--------+----+--------+-+-+-----------------------------------| |A s,d|A000|---*****|1|Y|Add | |AB s,d|B000|--******|1|Y|Add Bytes | |ABS d |0740|---*****|6|Y|Absolute value | |AI r,i|0220|---*****|8|Y|Add Immediate | |ANDI r,i|0240|-----***|8|Y|AND Immediate | |B s |0440|--------|6|N|Branch (PC=d) | |BL s |0680|--------|6|N|Branch and Link (R11=PC,PC=s) | |BLWP s |0400|--------|6|N|Branch & Load Workspace Ptr (3) (2)| |C s,d|8000|-----***|1|N|Compare | |CB s,d|9000|--*--***|1|N|Compare Bytes | |CI r,i|0280|-----***|8|N|Compare Immediate | |CKOF |03C0|--------|7|N|Clock Off | |CKON |03A0|--------|7|N|Clock On | |CLR d |04C0|--------|6|N|Clear | |COC s,r|2000|-----*--|3|N|Compare Ones Corresponding | |CZC s,r|2400|-----*--|3|N|Compare Zeros Corresponding | |DEC d |0600|---*****|6|Y|Decrement | |DECT d |0640|---*****|6|Y|Decrement by Two | |DIV d,r|3C00|---*----|9|N|Divide | |IDLE |0340|--------|7|N|Computer Idle | |INC d |0580|---*****|6|Y|Increment | |INCT d |05C0|---*****|6|Y|Increment by Two | |INV d |0540|-----***|6|Y|Invert | |JEQ a |1300|--------|2|N|Jump if Equal | |JGT a |1500|--------|2|N|Jump if Greater Than | |JH a |1B00|--------|2|N|Jump if High | |JHE a |1400|--------|2|N|Jump if High or Equal | |JL a |1A00|--------|2|N|Jump if Low | |JLE a |1200|--------|2|N|Jump if Low or Equal | |JLT a |1100|--------|2|N|Jump if Less Than | |JMP a |1000|--------|2|N|Jump unconditionally | |JNC a |1700|--------|2|N|Jump if No Carry | |JNE a |1600|--------|2|N|Jump if Not Equal | |JNO a |1900|--------|2|N|Jump if No Overflow | |JOC a |1800|--------|2|N|Jump On Carry | |JOP a |1C00|--------|2|N|Jump if Odd Parity | |LDCR s,c|3000|--*--***|4|Y|Load Communication Register | |LI r,i|0200|-----***|8|N|Load Immediate | |LIMI i |0300|*-------|8|N|Load Interrupt Mask Immediate | |LREX |03E0|*-------|7|N|Load or Restart Execution | |LWPI i |02E0|--------|8|N|Load Workspace Pointer Immediate | |MOV s,d|C000|-----***|1|Y|Move | |MOVB s,d|D000|--*--***|1|Y|Move Bytes | |MPY d,r|3800|--------|9|N|Multiply | |NEG d |0500|---*****|6|Y|Negate | |NOP |1000|--------| |N|No Operation (pseudo-operation) | |ORI r,i|0260|-----***|8|Y|OR Immediate | |RSET |0360|*-------|7|N|Reset | |RT |0458|--------| |N|Return (replaces 'B *11',pseudo-op)| |RTWP |0380|????????|7|N|Return Workspace Pointer (4) | |S s,d|6000|---*****|1|N|Subtract | |SB s,d|7000|--******|1|N|Subtract Bytes | |SBO a |1D00|--------|2|N|Set Bit to One | |SBZ a |1E00|--------|2|N|Set Bit to Zero | |SETO d |0700|--------|6|N|Set to Ones | |SLA r,c|0A00|----****|5|Y|Shift Left Arithmetic (1) | |SOC s,d|E000|-----***|1|Y|Set Ones Corresponding | |SOCB s,d|F000|-----***|1|Y|Set Ones Corresponding Bytes | |SRA r,c|0800|----****|5|Y|Shift Right Arithmetic (1) | |SRC r,c|0800|----****|5|Y|Shift Right Circular (1) | |SRL r,c|0900|----****|5|Y|Shift Right Logical (1) | |STCR s,c|3400|--*--***|4|Y|Store Communication Register | |STST r |02C0|--------|8|N|Store Status Register | |STWP r |02A0|--------|8|N|Store Workspace Pointer | |SWPB d |06C0|--------|6|N|Swap Bytes | |SZC s,d|4000|-----***|1|Y|Set Zeros Corresponding | |SZCB s,d|5000|-----***|1|Y|Set Zeros Corresponding Bytes | |TB a |1F00|-----*--|2|N|Test Bit | |X s |0480|--------|6|N|Execute the instruction at s | |XOP s,c|2C00|-1------|9|N|Extended Operation (5) (2) | |XOR s,r|2800|-----***|3|N|Exclusive OR | |--------+----+--------+-+-+-----------------------------------| | |XXXX| | | |Hexadecimal opcode (16-bit) | | | |-*01? | | |Unaffect/affected/reset/set/unknown| | | | |F| |Format (1-9, see later) | | | | | |Z|Result compared to zero (Y/N) | ---------------------------------------------------------------- ---------------------------------------------------------------- |Mnemonic |IXPVCEAL| |Description | |-------------+--------+---+-----------------------------------| | |I | |Interrupt mask (Bits 12-15) | | X | X | |Extended operation (Bit 6) | | OP | P | |Odd Parity (Bit 5) | | OV | V | |Overflow (Bit 4) | | C | C | |Carry (Bit 3) | | EQ | E | |Equal (Bit 2) | | A> | A | |Arithmetic greater than (Bit 1) | | L> | L| |Logical greater than (Bit 0) | |--------------------------+-----------------------------------| | Rn |Workspace register (TT=00) | | *Rn |Indirect workspace register (TT=01)| | *Rn+ |Indirect auto increment (TT=11) | | @nn |Symbolic (direct) | | nn(Rn) |Indexed (not R0, TT=10) | | nn |Immediate (TT=10) | | a |PC relative (PC=PC+2+2*offset) | | a |CRU relative (PC=CRU+offset) | |--------------------------+-----------------------------------| |BES nn |Block Ending with Symbol | |BSS nn |Block Starting with Symbol | |BYTE e(,...) |Byte (,byte...) | |DEFW nn(,...) |Define Word (,word...) | |EVEN |Even word boundary | |--------------------------+-----------------------------------| | CRU |Communication Reg (Bits 4-13, R12) | | PC |Program Counter (16-bit) | | Rn |Workspace Register (16-bit) | | n | ditto (if no mode conflict) | | WP |Workspace Pointer (16-bit) | | ST |Status Register (16-bit) | |--------------------------+-----------------------------------| | a |Relative address (-128 to +127) | | c |Count (4-bit, 0 to 15) | | d |Destination | | e |8-bit expression (0 to 255) | | i |Immediate | | n |Register number (0 to 15) | | nn |16-bit expression (0 to 65535) | | r |Workspace register | | s |Source | |--------------------------+-----------------------------------| | 0000H to 003FH |Interrupt trap vectors | | 0040H to 007FH |XOP instruction trap vectors | | FFFCH to FFFFH |LOAD function trap vector | |--------------------------+-----------------------------------| | XXXBTTDDDDTTSSSS |Format 1 (Arithmetic) | | XXXXXXXXOOOOOOOO |Format 2 (Jump) | | XXXXXXDDDDTTSSSS |Format 3 (Logical) | | XXXXXXCCCCTTSSSS |Format 4 (CRU) | | XXXXXXXXCCCCWWWW |Format 5 (Shift) | | XXXXXXXXXXTTSSSS |Format 6 (Program) | | XXXXXXXXXXXUUUUU |Format 7 (Control) | | XXXXXXXXXXXUWWWW |Format 8 (Immediate, word follows) | | XXXXXXDDDDTTSSSS |Format 9 (MPY,DIV,XOP) | |--------------------------+-----------------------------------| | B |Byte indicator (0=word, 1=byte) | | CCCC |Transfer or shift count | | DDDD |Destination address | | OOOOOOOO |Offset (-128 to +127 words) | | SSSS |Source address | | TT |Address modifiction | | U |Unused | | WWWW |Workspace register number | | X...X |Op code | |--------------------------+-----------------------------------| | (1) |If c=0 bits 12-14 of R0 are used | | (2) |R13=old WP,R14=old PC,R15=old ST | | (3) |WP=(s),PC=(s+2) | | (4) |WP=R13,PC=R14,ST=R15 | | (5) |WP=(40H+4c),PC=(42H+4c),R11=s | |--------------------------------------------------------------| | | | | | | | | | | ----------------------------------------------------------------