The instructions to be described on this page have the formats, taken from the main illustration of instruction formats on the first page of this section, shown in this diagram:
As well, the 33-bit alternate instructions as illustrated in this diagram:
include memory-to-register operate instructions, which are also listed below.
And the 48-bit memory reference instructions, as illustrated in this diagram:
both the form that only uses one bit to indicate an index scaled to the operand size, and the form that uses a three-bit field, to allow the left shift to be applied to the index to be specified directly, are listed below as well.
The opcodes for these instructions are:
Three-Address Two-Address 33-bit Memory 48-bit Memory 48-bit Scaled Reference Reference Memory Reference 163000 xxxxxx 163600 000xxx 00xxx0 xxxxxx 160000 00xxxx xxxxxx 160200 00xxxx xxxxxx SWB Swap Byte 163002 xxxxxx 163600 004xxx 00xxx1 xxxxxx 160000 01xxxx xxxxxx 160200 04xxxx xxxxxx CB Compare Byte 163010 xxxxxx 163600 010xxx 00xxx2 xxxxxx 160000 02xxxx xxxxxx 160200 10xxxx xxxxxx LB Load Byte 00xxx3 xxxxxx 160000 03xxxx xxxxxx 160200 14xxxx xxxxxx STB Store Byte 163020 xxxxxx 163600 020xxx 01xxx0 xxxxxx 160000 04xxxx xxxxxx 160201 00xxxx xxxxxx AB Add Byte 163022 xxxxxx 163600 024xxx 01xxx1 xxxxxx 160000 05xxxx xxxxxx 160201 04xxxx xxxxxx SB Subtract Byte 163040 xxxxxx 163600 040xxx 02xxx0 xxxxxx 160000 07xxxx xxxxxx 160201 14xxxx xxxxxx IB Insert Byte 163050 xxxxxx 163600 050xxx 02xxx2 xxxxxx 160000 12xxxx xxxxxx 160202 10xxxx xxxxxx ULB Unsigned Load Byte 163052 xxxxxx 163600 054xxx 02xxx3 xxxxxx 160000 13xxxx xxxxxx 160202 14xxxx xxxxxx XB Exclusive OR Byte 163060 xxxxxx 163600 060xxx 03xxx0 xxxxxx 160000 14xxxx xxxxxx 160203 00xxxx xxxxxx NB AND Byte 163062 xxxxxx 163600 064xxx 03xxx1 xxxxxx 160000 15xxxx xxxxxx 160203 04xxxx xxxxxx OB OR Byte 163100 xxxxxx 163600 100xxx 04xxx0 xxxxxx 160001 00xxxx xxxxxx 160210 00xxxx xxxxxx SWH Swap Halfword 163102 xxxxxx 163600 104xxx 04xxx1 xxxxxx 160001 01xxxx xxxxxx 160210 04xxxx xxxxxx CH Compare Halfword 163110 xxxxxx 163600 110xxx 04xxx2 xxxxxx 160001 02xxxx xxxxxx 160210 10xxxx xxxxxx LH Load Halfword 04xxx3 xxxxxx 160001 03xxxx xxxxxx 160210 14xxxx xxxxxx STH Store Halfword 163120 xxxxxx 163600 120xxx 05xxx0 xxxxxx 160001 04xxxx xxxxxx 160211 00xxxx xxxxxx AH Add Halfword 163122 xxxxxx 163600 124xxx 05xxx1 xxxxxx 160001 05xxxx xxxxxx 160211 04xxxx xxxxxx SH Subtract Halfword 163130 xxxxxx 163600 130xxx 05xxx2 xxxxxx 160001 06xxxx xxxxxx 160211 10xxxx xxxxxx MH Multiply Halfword 163132 xxxxxx 163600 134xxx 05xxx3 xxxxxx 160001 07xxxx xxxxxx 160211 14xxxx xxxxxx DH Divide Halfword 163140 xxxxxx 163600 140xxx 06xxx0 xxxxxx 160001 10xxxx xxxxxx 160212 00xxxx xxxxxx IH Insert Halfword 163150 xxxxxx 163600 150xxx 06xxx2 xxxxxx 160001 12xxxx xxxxxx 160212 10xxxx xxxxxx ULH Unsigned Load Halfword 163152 xxxxxx 163600 154xxx 06xxx3 xxxxxx 160001 13xxxx xxxxxx 160212 14xxxx xxxxxx XH Exclusive OR Halfword 163160 xxxxxx 163600 160xxx 07xxx0 xxxxxx 160001 14xxxx xxxxxx 160213 00xxxx xxxxxx NH AND Halfword 163162 xxxxxx 163600 164xxx 07xxx1 xxxxxx 160001 15xxxx xxxxxx 160213 04xxxx xxxxxx OH OR Halfword 163170 xxxxxx 163600 170xxx 07xxx2 xxxxxx 160001 16xxxx xxxxxx 160213 10xxxx xxxxxx MEH Multiply Extensibly Halfword 163172 xxxxxx 163600 174xxx 07xxx3 xxxxxx 160001 17xxxx xxxxxx 160213 14xxxx xxxxxx DEH Divide Extensibly Halfword 163200 xxxxxx 163601 000xxx 10xxx0 xxxxxx 160002 00xxxx xxxxxx 160220 00xxxx xxxxxx SW Swap 163202 xxxxxx 163601 004xxx 10xxx1 xxxxxx 160002 01xxxx xxxxxx 160220 04xxxx xxxxxx C Compare 163210 xxxxxx 163601 010xxx 10xxx2 xxxxxx 160002 02xxxx xxxxxx 160220 10xxxx xxxxxx L Load 10xxx3 xxxxxx 160002 03xxxx xxxxxx 160220 14xxxx xxxxxx ST Store 163220 xxxxxx 163601 020xxx 11xxx0 xxxxxx 160002 04xxxx xxxxxx 160221 00xxxx xxxxxx A Add 163222 xxxxxx 163601 024xxx 11xxx1 xxxxxx 160002 05xxxx xxxxxx 160221 04xxxx xxxxxx S Subtract 163230 xxxxxx 163601 030xxx 11xxx2 xxxxxx 160002 06xxxx xxxxxx 160221 10xxxx xxxxxx M Multiply 163232 xxxxxx 163601 034xxx 11xxx3 xxxxxx 160002 07xxxx xxxxxx 160221 14xxxx xxxxxx D Divide 163240 xxxxxx 163601 040xxx 12xxx0 xxxxxx 160002 10xxxx xxxxxx 160222 00xxxx xxxxxx I Insert 163250 xxxxxx 163601 050xxx 12xxx2 xxxxxx 160002 12xxxx xxxxxx 160222 10xxxx xxxxxx UL Unsigned Load 163252 xxxxxx 163601 054xxx 12xxx3 xxxxxx 160002 13xxxx xxxxxx 160222 14xxxx xxxxxx X Exclusive OR 163260 xxxxxx 163601 060xxx 13xxx0 xxxxxx 160002 14xxxx xxxxxx 160223 00xxxx xxxxxx N AND 163262 xxxxxx 163601 064xxx 13xxx1 xxxxxx 160002 15xxxx xxxxxx 160223 04xxxx xxxxxx O OR 163270 xxxxxx 163601 070xxx 13xxx2 xxxxxx 160002 16xxxx xxxxxx 160223 10xxxx xxxxxx ME Multiply Extensibly 163272 xxxxxx 163601 074xxx 13xxx3 xxxxxx 160002 17xxxx xxxxxx 160223 14xxxx xxxxxx DE Divide Extensibly 163300 xxxxxx 163601 100xxx 14xxx0 xxxxxx 160003 00xxxx xxxxxx 160230 00xxxx xxxxxx SWL Swap Long 163302 xxxxxx 163601 104xxx 14xxx1 xxxxxx 160003 01xxxx xxxxxx 160230 04xxxx xxxxxx CL Compare Long 163310 xxxxxx 163601 110xxx 14xxx2 xxxxxx 160003 02xxxx xxxxxx 160230 10xxxx xxxxxx LL Load Long 14xxx3 xxxxxx 160003 03xxxx xxxxxx 160230 14xxxx xxxxxx STL Store Long 163320 xxxxxx 163601 120xxx 15xxx0 xxxxxx 160003 04xxxx xxxxxx 160231 00xxxx xxxxxx AL Add Long 163322 xxxxxx 163601 124xxx 15xxx1 xxxxxx 160003 05xxxx xxxxxx 160231 04xxxx xxxxxx SL Subtract Long 163330 xxxxxx 163601 130xxx 15xxx2 xxxxxx 160003 06xxxx xxxxxx 160231 10xxxx xxxxxx ML Multiply Long 163332 xxxxxx 163601 134xxx 15xxx3 xxxxxx 160003 07xxxx xxxxxx 160231 14xxxx xxxxxx DL Divide Long 163352 xxxxxx 163601 154xxx 16xxx3 xxxxxx 160003 13xxxx xxxxxx 160232 14xxxx xxxxxx XL Exclusive OR Long 163360 xxxxxx 163601 160xxx 17xxx0 xxxxxx 160003 14xxxx xxxxxx 160233 00xxxx xxxxxx NL AND Long 163362 xxxxxx 163601 164xxx 17xxx1 xxxxxx 160003 15xxxx xxxxxx 160233 04xxxx xxxxxx OL OR Long 163370 xxxxxx 163601 170xxx 17xxx2 xxxxxx 160003 16xxxx xxxxxx 160233 10xxxx xxxxxx MEL Multiply Extensibly Long 163372 xxxxxx 163601 174xxx 17xxx3 xxxxxx 160003 17xxxx xxxxxx 160233 14xxxx xxxxxx DEL Divide Extensibly Long 163400 xxxxxx 163602 000xxx 20xxx0 xxxxxx 160010 00xxxx xxxxxx 160240 00xxxx xxxxxx SWM Swap Medium 163402 xxxxxx 163602 004xxx 20xxx1 xxxxxx 160010 01xxxx xxxxxx 160240 04xxxx xxxxxx CM Compare Medium 163410 xxxxxx 163602 010xxx 20xxx2 xxxxxx 160010 02xxxx xxxxxx 160240 10xxxx xxxxxx LM Load Medium 20xxx3 xxxxxx 160010 03xxxx xxxxxx 160240 14xxxx xxxxxx STM Store Medium 163420 xxxxxx 163602 020xxx 21xxx0 xxxxxx 160010 04xxxx xxxxxx 160241 00xxxx xxxxxx AM Add Medium 163422 xxxxxx 163602 024xxx 21xxx1 xxxxxx 160010 05xxxx xxxxxx 160241 04xxxx xxxxxx SM Subtract Medium 163430 xxxxxx 163602 030xxx 21xxx2 xxxxxx 160010 06xxxx xxxxxx 160241 10xxxx xxxxxx MM Multiply Medium 163432 xxxxxx 163602 034xxx 21xxx3 xxxxxx 160010 07xxxx xxxxxx 160241 14xxxx xxxxxx DM Divide Medium 163440 xxxxxx 163602 040xxx 22xxx0 xxxxxx 160011 00xxxx xxxxxx 160242 00xxxx xxxxxx SWF Swap Floating 163442 xxxxxx 163602 044xxx 22xxx1 xxxxxx 160011 01xxxx xxxxxx 160242 04xxxx xxxxxx CF Compare Floating 163450 xxxxxx 163602 050xxx 22xxx2 xxxxxx 160011 02xxxx xxxxxx 160242 10xxxx xxxxxx LF Load Floating 22xxx3 xxxxxx 160011 03xxxx xxxxxx 160242 14xxxx xxxxxx STF Store Floating 163460 xxxxxx 163602 060xxx 23xxx0 xxxxxx 160011 04xxxx xxxxxx 160243 00xxxx xxxxxx AF Add Floating 163462 xxxxxx 163602 064xxx 23xxx1 xxxxxx 160011 05xxxx xxxxxx 160243 04xxxx xxxxxx SF Subtract Floating 163470 xxxxxx 163602 070xxx 23xxx2 xxxxxx 160011 06xxxx xxxxxx 160243 10xxxx xxxxxx MF Multiply Floating 163472 xxxxxx 163602 074xxx 23xxx3 xxxxxx 160011 07xxxx xxxxxx 160243 14xxxx xxxxxx DF Divide Floating 163500 xxxxxx 163602 100xxx 24xxx0 xxxxxx 160012 00xxxx xxxxxx 160250 00xxxx xxxxxx SWD Swap Double 163502 xxxxxx 163602 104xxx 24xxx1 xxxxxx 160012 01xxxx xxxxxx 160250 04xxxx xxxxxx CD Compare Double 163510 xxxxxx 163602 110xxx 24xxx2 xxxxxx 160012 02xxxx xxxxxx 160250 10xxxx xxxxxx LD Load Double 24xxx3 xxxxxx 160012 03xxxx xxxxxx 160250 14xxxx xxxxxx STD Store Double 163520 xxxxxx 163602 120xxx 25xxx0 xxxxxx 160012 04xxxx xxxxxx 160251 00xxxx xxxxxx AD Add Double 163522 xxxxxx 163602 124xxx 25xxx1 xxxxxx 160012 05xxxx xxxxxx 160251 04xxxx xxxxxx SD Subtract Double 163530 xxxxxx 163602 130xxx 25xxx2 xxxxxx 160012 06xxxx xxxxxx 160251 10xxxx xxxxxx MD Multiply Double 163532 xxxxxx 163602 134xxx 25xxx3 xxxxxx 160012 07xxxx xxxxxx 160251 14xxxx xxxxxx DD Double 163540 xxxxxx 163602 140xxx 26xxx0 xxxxxx 160001 00xxxx xxxxxx 160252 00xxxx xxxxxx SWQ Swap Quad 163542 xxxxxx 163602 144xxx 26xxx1 xxxxxx 160001 01xxxx xxxxxx 160252 04xxxx xxxxxx CQ Compare Quad 163550 xxxxxx 163602 150xxx 26xxx2 xxxxxx 160001 02xxxx xxxxxx 160252 10xxxx xxxxxx LQ Load Quad 26xxx3 xxxxxx 160001 03xxxx xxxxxx 160252 14xxxx xxxxxx STQ Store Quad 163560 xxxxxx 163602 160xxx 27xxx0 xxxxxx 160001 04xxxx xxxxxx 160253 00xxxx xxxxxx AQ Add Quad 163562 xxxxxx 163602 164xxx 27xxx1 xxxxxx 160001 05xxxx xxxxxx 160253 04xxxx xxxxxx SQ Subtract Quad 163570 xxxxxx 163602 170xxx 27xxx2 xxxxxx 160001 06xxxx xxxxxx 160253 10xxxx xxxxxx MQ Multiply Quad 163572 xxxxxx 163602 174xxx 27xxx3 xxxxxx 160001 07xxxx xxxxxx 160253 14xxxx xxxxxx DQ Divide Quad
Most of these operations were defined on the page concerning 17-bit and 15-bit instructions.
Subsequent pages will give opcodes for additional instructions with these formats, for performing operations on data types other than two's complement binary integers and IEEE 754 (or similar, in the case of the Medium length) floating point.