---------------------------------------------------------------| | | | | Digital Equipment Corporation | | | | TTTTTTT 1 1 | | T 11 11 | | T 1 1 | | T XXX 1 1 | | T 1 1 | | T 1 1 | | T 111 111 | | | | T-11 MICROPROCESSOR Instruction Set Summary | | | | | | | | | | | | _________ _________ | | _| \__/ |_ | | <--> DAL15 |_|1 40|_| Vcc <-| | _| |_ | | <--> DAL14 |_|2 39|_| AI7 <--> | | _| |_ | | <--> DAL13 |_|3 38|_| AI6 <--> | | _| |_ | | <--> DAL12 |_|4 37|_| AI5 <--> | | _| |_ | | <--> DAL11 |_|5 36|_| AI4 <--> | | _| |_ | | <--> DAL10 |_|6 35|_| AI3 <--> | | _| |_ | | <--> DAL9 |_|7 34|_| AI2 <--> | | _| |_ | | --> BGND |_|8 33|_| AI1 <--> | | _| |_ | | <--> DAL8 |_|9 32|_| AI0 <--> | | _| |_ | | <--> DAL7 |_|10 DCT11-AA 31|_| PI --> | | _| |_ ___ | | <--> DAL6 |_|11 30|_| CAS --> | | _| |_ ___ | | <--> DAL5 |_|12 29|_| RAS --> | | _| |_ _ | | <--> DAL4 |_|13 28|_| R/WLB --> | | _| |_ _ | | <--> DAL3 |_|14 27|_| R/WHB --> | | _| |_ | | <--> DAL2 |_|15 26|_| READY <-| | _| |_ | | <--> DAL1 |_|16 25|_| SEL0 --> | | _| |_ | | <--> DAL0 |_|17 24|_| SEL1 --> | | ____ _| |_ | | <-- BCLR |_|18 23|_| XTL0 --> | | _| |_ | | --> PUP |_|19 22|_| XTL1 <--> |
| _| |_ | | --> GND |_|20 21|_| COUT --> | | |______________________| | | | | | | | | | | | | | |Written by Jonathan Bowen | | Programming Research Group | | Oxford University Computing Laboratory | | 8-11 Keble Road | | Oxford OX1 3QD | | England | | | | Tel +44-865-273840 | | | |Created May 1983 | |Updated April 1985 | |Issue 1.1 Copyright (C) J.P.Bowen 1985| ------------------------------------------------------------------------------------------------------------------------------|Mnemonic |Opcode|NZVC|Description |Notes | |---------+------+----+--------------------------+-------------| |ADCb d |B055DD|****|Add Carry |d=d+C | |ADD s,d |06SSDD|****|Add |d=s+d | |ASLb d |B063DD|****|Arithmetic Shift Left |d=d*2 | |ASRb d |B062DD|****|Arithmetic Shift Right |d=d/2 | |BCC a |1030XX|----|Branch if Carry Clear |If C=0 | |BCS a |1034XX|----|Branch if Carry Set |If C=1 | |BEQ a |0014XX|----|Branch if Equal |If Z=0 | |BGE a |0020XX|----|Branch if Greater or Equal|If NxV=0 | |BGT a |0030XX|----|Branch if Greater Than |If Zv{NxV}=0 | |BICb s,d |B4SSDD|**0-|Bit Clear |d=d&{~s} | |BISb s,d |B5SSDD|**0-|Bit Set (OR) |d=dvs | |BITb s,d |B3SSDD|**0-|Bit Test (AND) |d&s | |BHI a |1010XX|----|Branch if Higher |If CvZ=0 | |BHIS a |1030XX|----|Branch if Higher or Same |If C=0 | |BLE a |0034XX|----|Branch if Less or Equal |If Zv{NxV}=1 | |BLT a |0024XX|----|Branch if Less Than |If NxV=1 | |BLO a |1034XX|----|Branch if Lower |If C=1 | |BLOS a |1014XX|----|Branch if Lower or Same |If CvZ=1 | |BMI a |1004XX|----|Branch if Minus |If N=1 | |BNE a |0010XX|----|Branch if Not Equal |If Z=1 | |BPL a |1000XX|----|Branch if Plus |If N=0 | |BPT |000003|----|Breakpoint Trap |Vector at 14 | |BR a |0004XX|----|Branch |PC=PC+2*XX | |BVC a |1020XX|----|Branch if Overflow Clear |If V=0 | |BVS a |1024XX|----|Branch if Overflow Set |If V=1 | |CALL d |0047DD|----|Call subroutine | (= JSR PC,d)| |CCC |000257|0000|Clear all Condition Codes |{C,N,V,Z}=0 | |CLC |000241|---0|Clear Carry |C=0 | |CLN |000250|0---|Clear Negative |N=0 | |CLRb d |B050DD|0100|Clear |d=0 | |CLV |000242|--0-|Clear Overflow |V=0 | |CLZ |000244|-0--|Clear Zero |Z=0 | |CMPb s,d |B2SSDD|****|Compare |s-d |
|COMb d |B051DD|**01|Complement |d=~d | |DECb d |B053DD|***-|Decrement |d=d-1 | |EMT t |1040TT|----|Emulator Trap |Vector at 30 | |HALT |000000|----|Halt | | |INCb d |B052DD|***-|Increment |d=d+1 | |IOT |000004|----|Input/Output Trap |Vector at 20 | |JMP d |0001DD|----|Jump |PC=d | |JSR r,d |004RDD|----|Jump to Subroutine |r=PC,PC=d | |MFPS d |1067DD|**0-|Move From Processor Status|d=PS (byte)| |MOVb s,d |B1SSDD|**0-|Move |d=s | |MTPS s |1064SS|****|Move To Processor Status |PS=s (byte)| |NEGb d |B054DD|****|Negate |d=-d | |NOP |000240|----|No Operation | | |RESET |000005|----|Reset external bus | | |RETURN |000207|----|Return from subroutine | (= RTS PC)| |ROLb d |B061DD|****|Rotate Left |d={C,d}<| |RORb d |B060DD|****|Rotate Right |d=->{C,d} | |RTI |000002|----|Return from Interrupt |{PC,PS}=(SP)+| |RTS r |00020R|----|Return from Subroutine |PC=r,r=(SP)+ | |RTT |000006|----|Return from interrupt |Inhibit T-bit| |SBCb d |B056DD|****|Subtract Carry |d=d-C | |SCC |000277|1111|Set all Condition Codes |{C,N,V,Z}=1 | |SEC |000261|---1|Set Carry |C=1 | |SEN |000270|1---|Set Negative |N=1 | |SEV |000262|--1-|Set Overflow |V=1 | |SEZ |000264|-1--|Set Zero |Z=1 | |SOB r,a |077RNN|----|Subtract One and Branch |PC=PC-2*NN | |SUB s,d |16SSDD|****|Subtract |d=d-s | |SWAB d |0003DD|**00|Swap Bytes | | |SXT d |0067DD|-*0-|Sign Extend |d=0 or -1 | |TRAP t |1044TT|----|Trap |Vector at 34 | |TSTb d |B055DD|**00|Test |d | |WAIT |000001|----|Wait for interrupt | | |XOR r,d |074RDD|**0-|Exclusive OR |d=dxr | |---------+------+----+----------------------------------------| | | B| |0 for word, 1 for byte (1 bit) | | | DD| |Destination field (6 bits) | | | N| |Number (3 bits) | | | NN| |Number (6 bits) | | | R| |Register (3 bits, R0-5/SP/PC) | | | SS| |Source field (6 bits) | | | TT| |Number (8 bits) | | | XX| |Offset (8 bits, -128 to +127) | ------------------------------------------------------------------------------------------------------------------------------|Mnemonic |NZVC|Description | |----------------+----+----------------------------------------| | PSW |-*01|Flag unaffected/affected/reset/set | | | |Priority interrupt (Bit 7) | | T | |Trace trap (Bit 4) | | N |N |Negative (Bit 3) | | Z | Z |Zero (Bit 2) | | V | V |Overflow (Bit 1) | | C | C|Carry (Bit 0) | |---------------------+----------------------------------------| | r |Register (mode 0) | | (r) |Register deferred (mode 1) | | @r | ditto |
| (r)+ |Auto-increment (mode 2) | | @(r)+ |Auto-increment deferred (mode 3) | | -(r) |Auto-decrement (mode 4) | | @-(r) |Auto-decrement deferred (mode 5) | | nn(r) |Index (mode 6) | | @nn(r) |Index deferred (mode 7) | | #nn |Immediate (mode 2, r=PC) | | @#nn |Absolute (mode 3, r=PC) | | nn |Relative (mode 6, r=PC) | | @nn |Relative deferred (mode 7, r=PC) | |---------------------+----------------------------------------| | Rn |General purpose Register (16-bit, n=0-5)| | SP |Stack Pointer (16-bit, R6) | | PC |Program Counter (16-bit, R7) | | PS |Processor Status (16-bit) | |---------------------+----------------------------------------| | a |Relative address | | b |Blank or B for word or byte operand(s) | | d |Destination | | n |Register Number (0 to 5) | | nn |16-bit expression (0 to 65535) | | r |Register (Rn,SP,PC) | | s |Source | | t |Trap number | | + |Arithmetic addition | | |Arithmetic subtraction | | * |Arithmetic multipication | | / |Arithmetic division | | ^ |Arithmetic exponent | | & |Logical AND | | ~ |Logical NOT | | v |Logical inclusive OR | | x |Logical exclusive OR | | <|Rotate left | | -> |Rotate right | | { } |Combination of operands | | --> |Input pin | | <-|Output pin | | <--> |Input/output pin | |---------------------+----------------------------------------| | DEC |Digital Equipment Corporation | | PSW |Processor Status Word | |---------------------+----------------------------------------| | 000 |Reserved vector | | 004 |Time-out/system error vector | | 010 |Illegal and reserved instruction vector | | 014 |BPT instruction vector | | 020 |IOT instruction vector | | 024 |Power fail vector | | 030 |EMT instruction vector | | 034 |TRAP instruction vector | | 060 |Console input device vector | | 064 |Console output device vector | | 100 |External event line interrupt vector | | 160000-177776 |Device addresses | |--------------------------------------------------------------| | | | |
| | | | | | | | | | | | | | ----------------------------------------------------------------