High Level Assembler - Opcodes overview

The first table below lists the opcodes in the original S/360 IBM mainframe processor implementation, including all dropped instructions and a selection of the instructions that were later added. The other two tables below list selected opcodes for current mainframe processors.
Colors have been added in these tables to show the changes in the design and - above all - the orthogonality of the basic design, which shows in both horizontal and vertical stratification.
A legend is provided below each table.

Both selection and categorization (in the second and third tables) have been done by the author; no involvement by IBM is implied in any way. The selection of opcodes is the same for all three tables, except that the first table contains some opcodes that have been omitted from the other two. However, the opcodes not shown are mainly those that are rarely used, and did not fit in very well with horizontal stratification. Thus, the exceptions - caused by additions after the original design of the the early 1960s was implemented - are much more apparent in the vertical stratification.

The first table shows the complete original set, including instructions that were later dropped. It also shows all instructions present in the other two tables.

The second table shows horizontal stratification, which organizes instructions mainly by data type. It is easy to see that many of the newer instructions have been added in positions that are consistent with the existing stratification. However, some of the newer instructions appear to have been placed at randomly chosen positions. Not many of these exceptions appear in the table; this results (partly) from the way I constructed the table.

The third table shows vertical stratification, which organizes instructions mainly by type of operation. The background colors signify the type of operation, and the text color further distinguishes the type of operation, e.g., a white background designates load-type operations, green text is for load-negative opcodes, black text is for load-positive operations, etc.

In the third table it is much more clearly visible that IBM has tried to insert new opcodes in an appropriate position, when one was available. Nevertheless, quite a few of the newer opcodes appear in seemingly random positions.

The table shows a few noteworthy implementation details. The first is that some instructions skip over a few lines, e.g., the and-instructions appear on lines 1, 5, 9 and D which are all four lines apart.

The second detail is that even though this table is designed to show the vertical stratification, some of the horizontal stratification is still visible, e.g. the branch-on-index and the shifting instructions on line 8.

Original Implementation.

  0 1 2 3 4 5 6 7 8 9 A B C D E F
0         SPM BALR BCTR BCR SSK ISK SVC BSM BASSM BASR MVCL CLCL
1 LPR LNR LTR LCR NR CLR OR XR LR CR AR SR MR DR ALR SLR
2 LPDR LNDR LTDR LCDR HDR LDXR MXR MXDR LDR CDR ADR SDR MDR DDR AWR SWR
3 LPER LNER LTER LCER HER LEDR AXR SXR LER CER AER SER MER DER AUR SUR
4 STH LA STC IC EX BAL BCT BC LH CH AH SH MH BAS CVD CVB
5 ST LAE     N CL O X L C A S M D AL SL
6 STD             MXD LD CD AD SD MD DD AW SW
7 STE MS             LE CE AE SE ME DE AU SU
8 SSM   LPSW DIAG WRD
BRXH
RDD
BRXLE
BXH BXLE SRL SLL SRA SLA SRDL SLDL SRDA SLDA
9 STM TM MVI TS NI CLI OI XI LM   LAM STAM SIO TIO HIO TCH
A                 MVCLE CLCLE           MC
B   LRA         STCTL LCTL     CS CDS   CLM STCM ICM
C                                
D   MVN MVC MVZ NC CLC OC XC   MVCK MVCP MVCS TR TRT ED EDMK
E   PKU UNPKU           MVCIN PKA UNPKA       PLO LMD
F SRP MVO PACK UNPK         ZAP CP AP SP MP DP    

Legend

Black without text
Not assigned
Blue with White text
Instructions in original set, still valid
Red with Black text
Instructions in original set, no longer valid
Yellow with Black text
New instructions, not in original set

Horizontal Stratification.

  0 1 2 3 4 5 6 7 8 9 A B C D E F
0         SPM BALR BCTR BCR     SVC BSM BASSM BASR MVCL CLCL
1 LPR LNR LTR LCR NR CLR OR XR LR CR AR SR MR DR ALR SLR
2 LPDR LNDR LTDR LCDR HDR LDXR MXR MXDR LDR CDR ADR SDR MDR DDR AWR SWR
3 LPER LNER LTER LCER HER LEDR AXR SXR LER CER AER SER MER DER AUR SUR
4 STH LA STC IC EX BAL BCT BC LH CH AH SH MH BAS CVD CVB
5 ST LAE     N CL O X L C A S M D AL SL
6 STD             MXD LD CD AD SD MD DD AW SW
7 STE MS             LE CE AE SE ME DE AU SU
8         BRXH BRXLE BXH BXLE SRL SLL SRA SLA SRDL SLDL SRDA SLDA
9 STM TM MVI TS NI CLI OI XI LM   LAM STAM        
A                 MVCLE CLCLE           MC
B   LRA         STCTL LCTL     CS CDS   CLM STCM ICM
C                                
D   MVN MVC MVZ NC CLC OC XC   MVCK MVCP MVCS TR TRT ED EDMK
E   PKU UNPKU           MVCIN PKA UNPKA       PLO LMD
F SRP MVO PACK UNPK         ZAP CP AP SP MP DP    

Legend

Black without text
Not assigned / Not Shown
Blue with Black text
Moving Data
Brown with Black text
Boolean Logic
Green with Black text
Floating point Operations
Grey with Black text
Character Operations
Magenta with Black text
Bit Operations
Pink with Black text
Program Flow Control
Red with Black text
Packed Operations
Yellow with Black text
Integer Calculus
White with Black text
Other Operations

Vertical Stratification.

  0 1 2 3 4 5 6 7 8 9 A B C D E F
0         SPM BALR BCTR BCR     SVC BSM BASSM BASR MVCL CLCL
1 LPR LNR LTR LCR NR CLR OR XR LR CR AR SR MR DR ALR SLR
2 LPDR LNDR LTDR LCDR HDR LDXR MXR MXDR LDR CDR ADR SDR MDR DDR AWR SWR
3 LPER LNER LTER LCER HER LEDR AXR SXR LER CER AER SER MER DER AUR SUR
4 STH LA STC IC EX BAL BCT BC LH CH AH SH MH BAS CVD CVB
5 ST LAE     N CL O X L C A S M D AL SL
6 STD             MXD LD CD AD SD MD DD AW SW
7 STE MS             LE CE AE SE ME DE AU SU
8         BRXH BRXLE BXH BXLE SRL SLL SRA SLA SRDL SLDL SRDA SLDA
9 STM TM MVI TS NI CLI OI XI LM   LAM STAM        
A                 MVCLE CLCLE           MC
B   LRA         STCTL LCTL     CS CDS   CLM STCM ICM
C                                
D   MVN MVC MVZ NC CLC OC XC   MVCK MVCP MVCS TR TRT ED EDMK
E   PKU UNPKU           MVCIN PKA UNPKA       PLO LMD
F SRP MVO PACK UNPK         ZAP CP AP SP MP DP    

Legend

Black without text
Not assigned / Not Shown
Green with black text
Move-type operations
Grey with red text
Store-type operations
Pink background
Bitwise operations:
Green text
Bitwise and operations
Black text
Bitwise or (inclusive) operations
Blue text
Bitwise exclusive-or operations
Red background
Algebraic operations:
Black text
Add operations
White text
Subtract operations
Blue text
Multiply operations
Yellow text
Divide operations
Green text
Halve operations
White background
Load-type operations:
Green text
Load positive operations
Black text
Load negative operations
Yellow text
Load and test operations
Blue text
Load complement operations
Red text
Load operations
Magenta text
Load-address operations
Yellow background
Compare-type operations:
Black text
Compare operations
Red text
Compare logical operations
Blue background
"Other" operations:
White text
Branching operations
Red text
Shifting operations
Black text
All remaining operations

 

This site is a member of WebRing.
You are invited to browse the list of mainframe-loving sites.
Running
    Tyrannosaurus Rex Dinos are not dead. They are alive and well and living in data centers all around you. They speak in tongues and work strange magics with computers. Beware the dino! And just in case you're waiting for the final demise of these dino's: remember that dinos ruled the world for 155-million years!
Dinos and other anachronisms
[ Join Now | Ring Hub | Random | << Prev | Next >> ]
 

To the original instruction set.
To the horizontal stratification overview.
To the vertical stratification overview.

To the English Homepage.
To the general Homepage.



Below you find the logo of our sponsor and logos of the web-standards that this page adheres to.