[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:

The opcode field of the instruction format shown on line 1 is eight bits in length, but there are only 192 possible opcodes, as the first two bits of the opcode in this format may not be both 1.

As the opcode fields for some of the instruction formats shown in this diagram are quite large and generous, the opcode space allocated individually to those formats may also be further subdivided for other types of instruction in formats more closely related to them.

As well, also covered here are the closely related instructions the formats of which are shown in the last two lines of this part of the original diagram:

and the memory-reference instructions having the format shown in its first line, and also the memory-reference instructions having the format shown below:.

In the last format shown, the mode bits indicate:

00 Normal addressing

10 Auto-increment addressing
11 Flexible auto-increment addressing

In auto-increment addressing, if indexing is present, after the memory access is performed, the index register is incremented by the length of the memory operand.

In flexible auto-increment addressing, only even-numbered registers may be used as index registers, and the contents of the register following the index register are added to the index register after the memory access is performed.

The opcodes for these instructions are:

Three-Address   Two-Address     Two-Address (2) Augmented                  Augmented          Augmented
                                                Three-Address              Memory-Reference   Memory-Reference (2)

                170000 xxxxxx   170600 00xxxx   172x04 xxxxxx  0000000     172x00 000xxx      172x35 00000x  000xxx xxxxxx   SWB     Swap Byte
                170002 xxxxxx   170600 04xxxx   172x04 xxxxxx  0000001     172x00 004xxx      172x35 00000x  002xxx xxxxxx   CB      Compare Byte
                170004 xxxxxx   170600 10xxxx   172x04 xxxxxx  0000002     172x00 010xxx      172x35 00000x  004xxx xxxxxx   LB      Load Byte
                                                                           172x00 014xxx      172x35 00000x  006xxx xxxxxx   STB     Store Byte
170010 xxxxxx   170010 xxxxxx   170601 00xxxx   172x04 xxxxxx  0000004     172x00 020xxx      172x35 00000x  010xxx xxxxxx   AB      Add Byte
170012 xxxxxx   170012 xxxxxx   170601 04xxxx   172x04 xxxxxx  0000005     172x00 024xxx      172x35 00000x  012xxx xxxxxx   SB      Subtract Byte
                170020 xxxxxx   170602 00xxxx   172x04 xxxxxx  0000010     172x00 040xxx      172x35 00000x  020xxx xxxxxx   IB      Insert Byte
                170024 xxxxxx   170602 10xxxx   172x04 xxxxxx  0000012     172x00 050xxx      172x35 00000x  024xxx xxxxxx   ULB     Unsigned Load Byte
170026 xxxxxx   170026 xxxxxx   170602 14xxxx   172x04 xxxxxx  0000013     172x00 054xxx      172x35 00000x  026xxx xxxxxx   XB      Exclusive OR Byte
170030 xxxxxx   170030 xxxxxx   170603 00xxxx   172x04 xxxxxx  0000014     172x00 060xxx      172x35 00000x  030xxx xxxxxx   NB      AND Byte
170032 xxxxxx   170032 xxxxxx   170603 04xxxx   172x04 xxxxxx  0000015     172x00 064xxx      172x35 00000x  032xxx xxxxxx   OB      OR Byte
                170040 xxxxxx   170604 00xxxx   172x04 xxxxxx  0000020     172x00 100xxx      172x35 00000x  040xxx xxxxxx   SWH     Swap Halfword
                170042 xxxxxx   170604 04xxxx   172x04 xxxxxx  0000021     172x00 104xxx      172x35 00000x  042xxx xxxxxx   CH      Compare Halfword
                170044 xxxxxx   170604 10xxxx   172x04 xxxxxx  0000022     172x00 110xxx      172x35 00000x  044xxx xxxxxx   LH      Load Halfword
                                                                           172x00 114xxx      172x35 00000x  046xxx xxxxxx   STH     Store Halfword
170050 xxxxxx   170050 xxxxxx   170605 00xxxx   172x04 xxxxxx  0000024     172x00 120xxx      172x35 00000x  050xxx xxxxxx   AH      Add Halfword
170052 xxxxxx   170052 xxxxxx   170605 04xxxx   172x04 xxxxxx  0000025     172x00 124xxx      172x35 00000x  052xxx xxxxxx   SH      Subtract Halfword
170054 xxxxxx   170054 xxxxxx   170605 10xxxx   172x04 xxxxxx  0000026     172x00 130xxx      172x35 00000x  054xxx xxxxxx   MH      Multiply Halfword
170056 xxxxxx   170056 xxxxxx   170605 14xxxx   172x04 xxxxxx  0000027     172x00 134xxx      172x35 00000x  056xxx xxxxxx   DH      Divide Halfword
                170060 xxxxxx   170606 00xxxx   172x04 xxxxxx  0000030     172x00 140xxx      172x35 00000x  060xxx xxxxxx   IH      Insert Halfword
                170064 xxxxxx   170606 10xxxx   172x04 xxxxxx  0000032     172x00 150xxx      172x35 00000x  064xxx xxxxxx   ULH     Unsigned Load Halfword
170066 xxxxxx   170066 xxxxxx   170606 14xxxx   172x04 xxxxxx  0000033     172x00 154xxx      172x35 00000x  066xxx xxxxxx   XH      Exclusive OR Halfword
170070 xxxxxx   170070 xxxxxx   170607 00xxxx   172x04 xxxxxx  0000034     172x00 160xxx      172x35 00000x  070xxx xxxxxx   NH      AND Halfword
170072 xxxxxx   170072 xxxxxx   170607 04xxxx   172x04 xxxxxx  0000035     172x00 164xxx      172x35 00000x  072xxx xxxxxx   OH      OR Halfword
170074 xxxxxx   170074 xxxxxx   170607 10xxxx   172x04 xxxxxx  0000036     172x00 170xxx      172x35 00000x  074xxx xxxxxx   MEH     Multiply Extensibly Halfword
170076 xxxxxx   170076 xxxxxx   170607 14xxxx   172x04 xxxxxx  0000037     172x00 174xxx      172x35 00000x  076xxx xxxxxx   DEH     Divide Extensibly Halfword
                170100 xxxxxx   170610 00xxxx   172x04 xxxxxx  0000040     172x01 000xxx      172x35 00000x  100xxx xxxxxx   SW      Swap
                170102 xxxxxx   170610 04xxxx   172x04 xxxxxx  0000041     172x01 004xxx      172x35 00000x  102xxx xxxxxx   C       Compare
                170104 xxxxxx   170610 10xxxx   172x04 xxxxxx  0000042     172x01 010xxx      172x35 00000x  104xxx xxxxxx   L       Load
                                                                           172x01 014xxx      172x35 00000x  106xxx xxxxxx   ST      Store
170110 xxxxxx   170110 xxxxxx   170611 00xxxx   172x04 xxxxxx  0000044     172x01 020xxx      172x35 00000x  110xxx xxxxxx   A       Add
170112 xxxxxx   170112 xxxxxx   170611 04xxxx   172x04 xxxxxx  0000045     172x01 024xxx      172x35 00000x  112xxx xxxxxx   S       Subtract
170114 xxxxxx   170114 xxxxxx   170611 10xxxx   172x04 xxxxxx  0000046     172x01 030xxx      172x35 00000x  114xxx xxxxxx   M       Multiply
170116 xxxxxx   170116 xxxxxx   170611 14xxxx   172x04 xxxxxx  0000047     172x01 034xxx      172x35 00000x  116xxx xxxxxx   D       Divide
                170120 xxxxxx   170612 00xxxx   172x04 xxxxxx  0000050     172x01 040xxx      172x35 00000x  120xxx xxxxxx   I       Insert
                170124 xxxxxx   170612 10xxxx   172x04 xxxxxx  0000052     172x01 050xxx      172x35 00000x  124xxx xxxxxx   UL      Unsigned Load
170126 xxxxxx   170126 xxxxxx   170612 14xxxx   172x04 xxxxxx  0000053     172x01 054xxx      172x35 00000x  126xxx xxxxxx   X       Exclusive OR
170130 xxxxxx   170130 xxxxxx   170613 00xxxx   172x04 xxxxxx  0000054     172x01 060xxx      172x35 00000x  130xxx xxxxxx   N       AND
170132 xxxxxx   170132 xxxxxx   170613 04xxxx   172x04 xxxxxx  0000055     172x01 064xxx      172x35 00000x  132xxx xxxxxx   O       OR
170134 xxxxxx   170134 xxxxxx   170613 10xxxx   172x04 xxxxxx  0000056     172x01 070xxx      172x35 00000x  134xxx xxxxxx   ME      Multiply Extensibly
170136 xxxxxx   170136 xxxxxx   170613 14xxxx   172x04 xxxxxx  0000057     172x01 074xxx      172x35 00000x  136xxx xxxxxx   DE      Divide Extensibly
                170140 xxxxxx   170614 00xxxx   172x04 xxxxxx  0000060     172x01 100xxx      172x35 00000x  140xxx xxxxxx   SWL     Swap Long
                170142 xxxxxx   170614 04xxxx   172x04 xxxxxx  0000061     172x01 104xxx      172x35 00000x  142xxx xxxxxx   CL      Compare Long
                170144 xxxxxx   170614 10xxxx   172x04 xxxxxx  0000062     172x01 110xxx      172x35 00000x  144xxx xxxxxx   LL      Load Long
                                                                           172x01 114xxx      172x35 00000x  146xxx xxxxxx   STL     Store Long
170150 xxxxxx   170150 xxxxxx   170615 00xxxx   172x04 xxxxxx  0000064     172x01 120xxx      172x35 00000x  150xxx xxxxxx   AL      Add Long
170152 xxxxxx   170152 xxxxxx   170615 04xxxx   172x04 xxxxxx  0000065     172x01 124xxx      172x35 00000x  152xxx xxxxxx   SL      Subtract Long
170154 xxxxxx   170154 xxxxxx   170615 10xxxx   172x04 xxxxxx  0000066     172x01 130xxx      172x35 00000x  154xxx xxxxxx   ML      Multiply Long
170156 xxxxxx   170156 xxxxxx   170615 14xxxx   172x04 xxxxxx  0000067     172x01 134xxx      172x35 00000x  156xxx xxxxxx   DL      Divide Long
170166 xxxxxx   170166 xxxxxx   170616 14xxxx   172x04 xxxxxx  0000073     172x01 154xxx      172x35 00000x  166xxx xxxxxx   XL      Exclusive OR Long
170170 xxxxxx   170170 xxxxxx   170617 00xxxx   172x04 xxxxxx  0000074     172x01 160xxx      172x35 00000x  170xxx xxxxxx   NL      AND Long
170172 xxxxxx   170172 xxxxxx   170617 04xxxx   172x04 xxxxxx  0000075     172x01 164xxx      172x35 00000x  172xxx xxxxxx   OL      OR Long
170174 xxxxxx   170174 xxxxxx   170617 10xxxx   172x04 xxxxxx  0000076     172x01 170xxx      172x35 00000x  174xxx xxxxxx   MEL     Multiply Extensibly Long
170176 xxxxxx   170176 xxxxxx   170617 14xxxx   172x04 xxxxxx  0000077     172x01 174xxx      172x35 00000x  176xxx xxxxxx   DEL     Divide Extensibly Long
                170200 xxxxxx   170620 00xxxx   172x02 xxxxxx  0000100     172x02 000xxx      172x35 00004x  000xxx xxxxxx   SWM     Swap Medium
                170202 xxxxxx   170620 04xxxx   172x02 xxxxxx  0000101     172x02 004xxx      172x35 00004x  002xxx xxxxxx   CM      Compare Medium
                170204 xxxxxx   170620 10xxxx   172x02 xxxxxx  0000102     172x02 010xxx      172x35 00004x  004xxx xxxxxx   LM      Load Medium
                                                                           172x02 014xxx      172x35 00004x  006xxx xxxxxx   STM     Store Medium
170210 xxxxxx   170210 xxxxxx   170621 00xxxx   172x02 xxxxxx  0000104     172x02 020xxx      172x35 00004x  010xxx xxxxxx   AM      Add Medium
170212 xxxxxx   170212 xxxxxx   170621 04xxxx   172x02 xxxxxx  0000105     172x02 024xxx      172x35 00004x  012xxx xxxxxx   SM      Subtract Medium
170214 xxxxxx   170214 xxxxxx   170621 10xxxx   172x02 xxxxxx  0000106     172x02 030xxx      172x35 00004x  014xxx xxxxxx   MM      Multiply Medium
170216 xxxxxx   170216 xxxxxx   170621 14xxxx   172x02 xxxxxx  0000107     172x02 034xxx      172x35 00004x  016xxx xxxxxx   DM      Divide Medium
                170220 xxxxxx   170622 00xxxx   172x02 xxxxxx  0000110     172x02 040xxx      172x35 00004x  020xxx xxxxxx   SWF     Swap Floating
                170222 xxxxxx   170622 04xxxx   172x02 xxxxxx  0000111     172x02 044xxx      172x35 00004x  022xxx xxxxxx   CF      Compare Floating
                170224 xxxxxx   170622 10xxxx   172x02 xxxxxx  0000112     172x02 050xxx      172x35 00004x  024xxx xxxxxx   LF      Load Floating
                                                                           172x02 054xxx      172x35 00004x  026xxx xxxxxx   STF     Store Floating
170230 xxxxxx   170230 xxxxxx   170623 00xxxx   172x02 xxxxxx  0000114     172x02 060xxx      172x35 00004x  030xxx xxxxxx   AF      Add Floating
170232 xxxxxx   170232 xxxxxx   170623 04xxxx   172x02 xxxxxx  0000115     172x02 064xxx      172x35 00004x  032xxx xxxxxx   SF      Subtract Floating
170234 xxxxxx   170234 xxxxxx   170623 10xxxx   172x02 xxxxxx  0000116     172x02 070xxx      172x35 00004x  034xxx xxxxxx   MF      Multiply Floating
170236 xxxxxx   170236 xxxxxx   170623 14xxxx   172x02 xxxxxx  0000117     172x02 074xxx      172x35 00004x  036xxx xxxxxx   DF      Divide Floating
                170240 xxxxxx   170624 00xxxx   172x02 xxxxxx  0000120     172x02 100xxx      172x35 00004x  040xxx xxxxxx   SWD     Swap Double
                170242 xxxxxx   170624 04xxxx   172x02 xxxxxx  0000121     172x02 104xxx      172x35 00004x  042xxx xxxxxx   CD      Compare Double
                170244 xxxxxx   170624 10xxxx   172x02 xxxxxx  0000122     172x02 110xxx      172x35 00004x  044xxx xxxxxx   LD      Load Double
                                                                           172x02 114xxx      172x35 00004x  046xxx xxxxxx   STD     Store Double
170250 xxxxxx   170250 xxxxxx   170625 00xxxx   172x02 xxxxxx  0000124     172x02 120xxx      172x35 00004x  050xxx xxxxxx   AD      Add Double
170252 xxxxxx   170252 xxxxxx   170625 04xxxx   172x02 xxxxxx  0000125     172x02 124xxx      172x35 00004x  052xxx xxxxxx   SD      Subtract Double
170254 xxxxxx   170254 xxxxxx   170625 10xxxx   172x02 xxxxxx  0000126     172x02 130xxx      172x35 00004x  054xxx xxxxxx   MD      Multiply Double
170256 xxxxxx   170256 xxxxxx   170625 14xxxx   172x02 xxxxxx  0000127     172x02 134xxx      172x35 00004x  056xxx xxxxxx   DD      Double
                170260 xxxxxx   170626 00xxxx   172x02 xxxxxx  0000130     172x02 140xxx      172x35 00004x  060xxx xxxxxx   SWQ     Swap Quad
                170262 xxxxxx   170626 04xxxx   172x02 xxxxxx  0000131     172x02 144xxx      172x35 00004x  062xxx xxxxxx   CQ      Compare Quad
                170264 xxxxxx   170626 10xxxx   172x02 xxxxxx  0000132     172x02 150xxx      172x35 00004x  064xxx xxxxxx   LQ      Load Quad
                                                                           172x02 154xxx      172x35 00004x  066xxx xxxxxx   STQ     Store Quad
170270 xxxxxx   170270 xxxxxx   170627 00xxxx   172x02 xxxxxx  0000134     172x02 160xxx      172x35 00004x  070xxx xxxxxx   AQ      Add Quad
170272 xxxxxx   170272 xxxxxx   170627 04xxxx   172x02 xxxxxx  0000135     172x02 164xxx      172x35 00004x  072xxx xxxxxx   SQ      Subtract Quad
170274 xxxxxx   170274 xxxxxx   170627 10xxxx   172x02 xxxxxx  0000136     172x02 170xxx      172x35 00004x  074xxx xxxxxx   MQ      Multiply Quad
170276 xxxxxx   170276 xxxxxx   170627 14xxxx   172x02 xxxxxx  0000137     172x02 174xxx      172x35 00004x  076xxx xxxxxx   DQ      Divide Quad

Most of these operations were defined on the page concerning 16-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]