In Compact Mode, the register-to-register and memory-reference instructions follow the scheme shown below:
To allow short program modules that use only a limited number of data storage locations for most of their work to be more compact, there are short-format memory-reference instructions that occupy only 16 bits. These instructions always use register 0 (of the appropriate type) as their destination register; addresses are displacements within a 1,024-byte region of memory, to which the contents of base register 0 are taken to point.
As the register-to-register and shift instructions are unchanged, the three-address long vector instructions and various other special features (everything where the first 16 bits of the instruction were from 000000 to 037777) would remain available in this mode. Other special features are no longer available. Note that a few of the operate instructions are available, and some of them are modified so as no longer to have indexing available.
Memory Reference Register Short Format -------------------- ------ ------ 0600xx xxxxxx 0000xx 100xxx SWB Swap Byte 0610xx xxxxxx 0001xx 102xxx CB Compare Byte 0620xx xxxxxx 0002xx 104xxx LB Load Byte 0630xx xxxxxx 106xxx STB Store Byte 0640xx xxxxxx 0004xx 110xxx AB Add Byte 0650xx xxxxxx 0005xx 112xxx SB Subtract Byte 0700xx xxxxxx 0010xx 120xxx IB Insert Byte 0710xx xxxxxx 0011xx 122xxx UCB Unsigned Compare Byte 0720xx xxxxxx 0012xx 124xxx ULB Unsigned Load Byte 0730xx xxxxxx 0013xx 126xxx XB XOR Byte 0740xx xxxxxx 0014xx 130xxx NB AND Byte 0750xx xxxxxx 0015xx 132xxx OB OR Byte 0770xx xxxxxx 0017xx 136xxx STGB Store if Greater Byte 0602xx xxxxx0 (xxx0) 0020xx 140xx0 SWH Swap Halfword 0612xx xxxxx0 (xxx0) 0021xx 142xx0 CH Compare Halfword 0622xx xxxxx0 (xxx0) 0022xx 144xx0 LH Load Halfword 0632xx xxxxx0 (xxx0) 146xx0 STH Store Halfword 0642xx xxxxx0 (xxx0) 0024xx 150xx0 AH Add Halfword 0652xx xxxxx0 (xxx0) 0025xx 152xx0 SH Subtract Halfword 0662xx xxxxx0 (xxx0) 0026xx 154xx0 MH Multiply Halfword 0672xx xxxxx0 (xxx0) 0027xx 156xx0 DH Divide Halfword 0702xx xxxxx0 (xxx0) 0030xx 160xx0 IH Insert Halfword 0712xx xxxxx0 (xxx0) 0031xx 162xx0 UCH Unsigned Compare Halfword 0722xx xxxxx0 (xxx0) 0032xx 164xx0 ULH Unsigned Load Halfword 0732xx xxxxx0 (xxx0) 0033xx 166xx0 XH XOR Halfword 0742xx xxxxx0 (xxx0) 0034xx 170xx0 NH AND Halfword 0752xx xxxxx0 (xxx0) 0035xx 172xx0 OH OR Halfword 0762xx xxxxx0 (xxx0) 0036xx 174xx0 MEH Multiply Extensibly Halfword 0772xx xxxxx0 (xxx0) 0037xx 176xx0 DEH Divide Extensibly Halfword 0602xx xxxxx1 (xx01) 0040xx 140xx1 SW Swap 0612xx xxxxx1 (xx01) 0041xx 142xx1 C Compare 0622xx xxxxx1 (xx01) 0042xx 144xx1 L Load 0632xx xxxxx1 (xx01) 146xx1 ST Store 0642xx xxxxx1 (xx01) 0044xx 150xx1 A Add 0652xx xxxxx1 (xx01) 0045xx 152xx1 S Subtract 0662xx xxxxx1 (xx01) 0046xx 154xx1 M Multiply 0672xx xxxxx1 (xx01) 0047xx 156xx1 D Divide 0712xx xxxxx1 (xx01) 0051xx 162xx1 UC Unsigned Compare 0732xx xxxxx1 (xx01) 0053xx 166xx1 X XOR 0742xx xxxxx1 (xx01) 0054xx 170xx1 N AND 0752xx xxxxx1 (xx01) 0055xx 172xx1 O OR 0762xx xxxxx1 (xx01) 0056xx 174xx1 ME Multiply Extensibly 0772xx xxxxx1 (xx01) 0057xx 176xx1 DE Divide Extensibly 0602xx xxxxx3 (x011) 0060xx 140xx3 SWL Swap Long 0612xx xxxxx3 (x011) 0061xx 142xx3 CL Compare Long 0622xx xxxxx3 (x011) 0062xx 144xx3 LL Load Long 0632xx xxxxx3 (x011) 146xx3 STL Store Long 0642xx xxxxx3 (x011) 0064xx 150xx3 AL Add Long 0652xx xxxxx3 (x011) 0065xx 152xx3 SL Subtract Long 0662xx xxxxx3 (x011) 0066xx 154xx3 ML Multiply Long 0672xx xxxxx3 (x011) 0067xx 156xx3 DL Divide Long 0712xx xxxxx3 (x011) 0071xx 162xx3 UCL Unsigned Compare Long 0732xx xxxxx3 (x011) 0073xx 166xx3 XL XOR Long 0742xx xxxxx3 (x011) 0074xx 170xx3 NL AND Long 0752xx xxxxx3 (x011) 0075xx 172xx3 OL OR Long 0762xx xxxxx3 (x011) 0076xx 174xx3 MEL Multiply Extensibly Long 0772xx xxxxx3 (x011) 0077xx 176xx3 DEL Divide Extensibly Long 0604xx xxxxx0 (xxx0) 0100xx 040xx0 SWM Swap Medium 0614xx xxxxx0 (xxx0) 0101xx 042xx0 CM Compare Medium 0624xx xxxxx0 (xxx0) 0102xx 044xx0 LM Load Medium 0634xx xxxxx0 (xxx0) 046xx0 STM Store Medium 0644xx xxxxx0 (xxx0) 0104xx 050xx0 AM Add Medium 0654xx xxxxx0 (xxx0) 0105xx 052xx0 SM Subtract Medium 0664xx xxxxx0 (xxx0) 0106xx 054xx0 MM Multiply Medium 0674xx xxxxx0 (xxx0) 0107xx 056xx0 DM Divide Medium 0704xx xxxxx0 (xxx0) 0110xx MEUM Multiply Extensibly Unnormalized Medium 0714xx xxxxx0 (xxx0) 0111xx DEUM Divide Extensibly Unnormalized Medium 0724xx xxxxx0 (xxx0) 0112xx LUM Load Unnormalized Medium 0734xx xxxxx0 (xxx0) 0113xx STUM Store Unnormalized Medium 0744xx xxxxx0 (xxx0) 0114xx AUM Add Unnormalized Medium 0754xx xxxxx0 (xxx0) 0115xx SUM Subtract Unnormalized Medium 0764xx xxxxx0 (xxx0) 0116xx MUM Multiply Unnormalized Medium 0774xx xxxxx0 (xxx0) 0117xx DUM Divide Unnormalized Medium 0604xx xxxxx1 (xx01) 0120xx 040xx1 SWF Swap Floating 0614xx xxxxx1 (xx01) 0121xx 042xx1 CF Compare Floating 0624xx xxxxx1 (xx01) 0122xx 044xx1 LF Load Floating 0634xx xxxxx1 (xx01) 046xx1 STF Store Floating 0644xx xxxxx1 (xx01) 0124xx 050xx1 AF Add Floating 0654xx xxxxx1 (xx01) 0125xx 052xx1 SF Subtract Floating 0664xx xxxxx1 (xx01) 0126xx 054xx1 MF Multiply Floating 0674xx xxxxx1 (xx01) 0127xx 056xx1 DF Divide Floating 0704xx xxxxx1 (xx01) 0130xx MEU Multiply Extensibly Unnormalized 0714xx xxxxx1 (xx01) 0131xx DEU Divide Extensibly Unnormalized 0724xx xxxxx1 (xx01) 0132xx LU Load Unnormalized 0734xx xxxxx1 (xx01) 0133xx STU Store Unnormalized 0744xx xxxxx1 (xx01) 0134xx AU Add Unnormalized 0754xx xxxxx1 (xx01) 0135xx SU Subtract Unnormalized 0764xx xxxxx1 (xx01) 0136xx MU Multiply Unnormalized 0774xx xxxxx1 (xx01) 0137xx DU Divide Unnormalized 0604xx xxxxx3 (x011) 0140xx 040xx3 SWD Swap Double 0614xx xxxxx3 (x011) 0141xx 042xx3 CD Compare Double 0624xx xxxxx3 (x011) 0142xx 044xx3 LD Load Double 0634xx xxxxx3 (x011) 046xx3 STD Store Double 0644xx xxxxx3 (x011) 0144xx 050xx3 AD Add Double 0654xx xxxxx3 (x011) 0145xx 052xx3 SD Subtract Double 0664xx xxxxx3 (x011) 0146xx 054xx3 MD Multiply Double 0674xx xxxxx3 (x011) 0147xx 056xx3 DD Divide Double 0704xx xxxxx3 (x011) 0150xx MEUD Multiply Extensibly Unnormalized Double 0714xx xxxxx3 (x011) 0151xx DEUD Divide Extensibly Unnormalized Double 0724xx xxxxx3 (x011) 0152xx LUD Load Unnormalized Double 0734xx xxxxx3 (x011) 0153xx STUD Store Unnormalized Double 0744xx xxxxx3 (x011) 0154xx AUD Add Unnormalized Double 0754xx xxxxx3 (x011) 0155xx SUD Subtract Unnormalized Double 0764xx xxxxx3 (x011) 0156xx MUD Multiply Unnormalized Double 0774xx xxxxx3 (x011) 0157xx DUD Divide Unnormalized Double 0604xx xxxxx7 (0111) 0160xx 040xx7 SWQ Swap Quad 0614xx xxxxx7 (0111) 0161xx 042xx7 CQ Compare Quad 0624xx xxxxx7 (0111) 0162xx 044xx7 LQ Load Quad 0634xx xxxxx7 (0111) 046xx7 STQ Store Quad 0644xx xxxxx7 (0111) 0164xx 050xx7 AQ Add Quad 0654xx xxxxx7 (0111) 0165xx 052xx7 SQ Subtract Quad 0664xx xxxxx7 (0111) 0166xx 054xx7 MQ Multiply Quad 0674xx xxxxx7 (0111) 0167xx 056xx7 DQ Divide Quad 0704xx xxxxx7 (0111) 0170xx MEUQ Multiply Extensibly Unnormalized Quad 0714xx xxxxx7 (0111) 0171xx DEUQ Divide Extensibly Unnormalized Quad 0724xx xxxxx7 (0111) 0172xx LUQ Load Unnormalized Quad 0734xx xxxxx7 (0111) 0173xx STUQ Store Unnormalized Quad 0744xx xxxxx7 (0111) 0174xx AUQ Add Unnormalized Quad 0754xx xxxxx7 (0111) 0175xx SUQ Subtract Unnormalized Quad 0764xx xxxxx7 (0111) 0176xx MUQ Multiply Unnormalized Quad 0774xx xxxxx7 (0111) 0177xx DUQ Divide Unnormalized Quad