[Next] [Up][Previous]

Local Mode

In Local Mode, the register-to-register and memory-reference instructions follow the scheme shown below:

This mode is equivalent to Compact Mode in terms of the accessibility of supplementary instructions to be dealt with in the following pages. Here, however, instead of allocating a large proportion of opcode space to short format memory-reference instructions, it is supplementary register to register instructions that are emphasized. Also, as with Simple Mode, the 32-bit group of operate instructions including subroutine jump and conditional jump instructions is completely present, but with modified opcodes.

Memory Reference       Register   Scratchpad
--------------------   ------     ------
0600xx xxxxxx          0000xx     100xxx     SWB    Swap Byte
0610xx xxxxxx          0001xx     101xxx     CB     Compare Byte
0620xx xxxxxx          0002xx     102xxx     LB     Load Byte
0630xx xxxxxx                     103xxx     STB    Store Byte
0640xx xxxxxx          0004xx     104xxx     AB     Add Byte
0650xx xxxxxx          0005xx     105xxx     SB     Subtract Byte

0700xx xxxxxx          0010xx     110xxx     IB     Insert Byte
0710xx xxxxxx          0011xx     111xxx     UCB    Unsigned Compare Byte
0720xx xxxxxx          0012xx     112xxx     ULB    Unsigned Load Byte
0730xx xxxxxx          0013xx     113xxx     XB     XOR Byte
0740xx xxxxxx          0014xx     114xxx     NB     AND Byte
0750xx xxxxxx          0015xx     115xxx     OB     OR Byte

0770xx xxxxxx          0017xx     117xxx     STGB   Store if Greater Byte

0602xx xxxxx0 (xxx0)   0020xx     120xxx     SWH    Swap Halfword
0612xx xxxxx0 (xxx0)   0021xx     121xxx     CH     Compare Halfword
0622xx xxxxx0 (xxx0)   0022xx     122xxx     LH     Load Halfword
0632xx xxxxx0 (xxx0)              123xxx     STH    Store Halfword
0642xx xxxxx0 (xxx0)   0024xx     124xxx     AH     Add Halfword
0652xx xxxxx0 (xxx0)   0025xx     125xxx     SH     Subtract Halfword
0662xx xxxxx0 (xxx0)   0026xx     126xxx     MH     Multiply Halfword
0672xx xxxxx0 (xxx0)   0027xx     127xxx     DH     Divide Halfword

0702xx xxxxx0 (xxx0)   0030xx     130xxx     IH     Insert Halfword
0712xx xxxxx0 (xxx0)   0031xx     131xxx     UCH    Unsigned Compare Halfword
0722xx xxxxx0 (xxx0)   0032xx     132xxx     ULH    Unsigned Load Halfword
0732xx xxxxx0 (xxx0)   0033xx     133xxx     XH     XOR Halfword
0742xx xxxxx0 (xxx0)   0034xx     134xxx     NH     AND Halfword
0752xx xxxxx0 (xxx0)   0035xx     135xxx     OH     OR Halfword
0762xx xxxxx0 (xxx0)   0036xx     136xxx     MEH    Multiply Extensibly Halfword
0772xx xxxxx0 (xxx0)   0037xx     137xxx     DEH    Divide Extensibly Halfword

0602xx xxxxx1 (xx01)   0040xx     140xxx     SW     Swap
0612xx xxxxx1 (xx01)   0041xx     141xxx     C      Compare
0622xx xxxxx1 (xx01)   0042xx     142xxx     L      Load
0632xx xxxxx1 (xx01)              143xxx     ST     Store
0642xx xxxxx1 (xx01)   0044xx     144xxx     A      Add
0652xx xxxxx1 (xx01)   0045xx     145xxx     S      Subtract
0662xx xxxxx1 (xx01)   0046xx     146xxx     M      Multiply
0672xx xxxxx1 (xx01)   0047xx     147xxx     D      Divide

0712xx xxxxx1 (xx01)   0051xx     151xxx     UC     Unsigned Compare

0732xx xxxxx1 (xx01)   0053xx     153xxx     X      XOR
0742xx xxxxx1 (xx01)   0054xx     154xxx     N      AND
0752xx xxxxx1 (xx01)   0055xx     155xxx     O      OR
0762xx xxxxx1 (xx01)   0056xx     156xxx     ME     Multiply Extensibly
0772xx xxxxx1 (xx01)   0057xx     157xxx     DE     Divide Extensibly

0602xx xxxxx3 (x011)   0060xx                SWL    Swap Long
0612xx xxxxx3 (x011)   0061xx                CL     Compare Long
0622xx xxxxx3 (x011)   0062xx                LL     Load Long
0632xx xxxxx3 (x011)                         STL    Store Long
0642xx xxxxx3 (x011)   0064xx                AL     Add Long
0652xx xxxxx3 (x011)   0065xx                SL     Subtract Long
0662xx xxxxx3 (x011)   0066xx                ML     Multiply Long
0672xx xxxxx3 (x011)   0067xx                DL     Divide Long

0712xx xxxxx3 (x011)   0071xx                UCL    Unsigned Compare Long

0732xx xxxxx3 (x011)   0073xx                XL     XOR Long
0742xx xxxxx3 (x011)   0074xx                NL     AND Long
0752xx xxxxx3 (x011)   0075xx                OL     OR Long
0762xx xxxxx3 (x011)   0076xx                MEL    Multiply Extensibly Long
0772xx xxxxx3 (x011)   0077xx                DEL    Divide Extensibly Long

0604xx xxxxx0 (xxx0)   0100xx                SWM    Swap Medium
0614xx xxxxx0 (xxx0)   0101xx                CM     Compare Medium
0624xx xxxxx0 (xxx0)   0102xx                LM     Load Medium
0634xx xxxxx0 (xxx0)                         STM    Store Medium
0644xx xxxxx0 (xxx0)   0104xx                AM     Add Medium
0654xx xxxxx0 (xxx0)   0105xx                SM     Subtract Medium
0664xx xxxxx0 (xxx0)   0106xx                MM     Multiply Medium
0674xx xxxxx0 (xxx0)   0107xx                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     160xxx     SWF    Swap Floating
0614xx xxxxx1 (xx01)   0121xx     161xxx     CF     Compare Floating
0624xx xxxxx1 (xx01)   0122xx     162xxx     LF     Load Floating
0634xx xxxxx1 (xx01)              163xxx     STF    Store Floating
0644xx xxxxx1 (xx01)   0124xx     164xxx     AF     Add Floating
0654xx xxxxx1 (xx01)   0125xx     165xxx     SF     Subtract Floating
0664xx xxxxx1 (xx01)   0126xx     166xxx     MF     Multiply Floating
0674xx xxxxx1 (xx01)   0127xx     167xxx     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     170xxx     SWD    Swap Double
0614xx xxxxx3 (x011)   0141xx     171xxx     CD     Compare Double
0624xx xxxxx3 (x011)   0142xx     172xxx     LD     Load Double
0634xx xxxxx3 (x011)              173xxx     STD    Store Double
0644xx xxxxx3 (x011)   0144xx     174xxx     AD     Add Double
0654xx xxxxx3 (x011)   0145xx     175xxx     SD     Subtract Double
0664xx xxxxx3 (x011)   0146xx     176xxx     MD     Multiply Double
0674xx xxxxx3 (x011)   0147xx     177xxx     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                SWQ    Swap Quad
0614xx xxxxx7 (0111)   0161xx                CQ     Compare Quad
0624xx xxxxx7 (0111)   0162xx                LQ     Load Quad
0634xx xxxxx7 (0111)                         STQ    Store Quad
0644xx xxxxx7 (0111)   0164xx                AQ     Add Quad
0654xx xxxxx7 (0111)   0165xx                SQ     Subtract Quad
0664xx xxxxx7 (0111)   0166xx                MQ     Multiply Quad
0674xx xxxxx7 (0111)   0167xx                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

Note also the use of the same compact memory-reference instructions as used in Scratchpad Mode, but with modified opcodes.

[Next] [Up][Previous]