[Next] [Next Section] [Up] [Previous]

Operate Instructions

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.


[Next] [Next Section] [Up] [Previous]