360 Assembly/360 Instructions

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search

There are several types of instructions on the 360 mainframe. The instruction type is determined by the first two bits of the op code. The instruction types are

  • RR Instructions which use 2 registers for the arguments. These are two bytes long. RR instructions are op codes where the two high bits of the op code are 00, e.g. instructions 00-3F.
  • RX Instructions which use one register and combined register and address as a base-displacement address. These are 4 bytes long. RX instructions are op codes where the two high bits of the op code are 01, e.g. instructions 40-7F.
  • RS Instructions which use one register and combined register and address as a base-displacement address to reference a single string. These are 4 (or 6 fact?) bytes long. RS instructions are op codes where the two high bits of the op code are 10, e.g. instructions 80-BF.
  • SS Instructions which use two combined register and address values as base-displacement addresses to reference two strings. These are also 6 bytes long. SS instructions are op codes where the two high bits of the op code are 11, e.g. instructions CF-FF.

All instructions must be aligned to an even address. Attempts to create an instruction at an odd address will be flagged as an error by the assembler; an attempt to branch to an odd address will result in a program check.

There are three classes of instructions. 360 instructions are those which were part of the original IBM 360 mainframe instruction set. 370 instructions were added with the creation of the IBM 370, are only available on 370 and higher series machines, and will cause a program check if they are attempted to be executed on a 360. z/System instructions were created after the 370, and will not work on 360 or 370 hardware, only on z/System machines.

Opcode
(Hex)

Mnemonic

Description
Type of
Instruction
Class of
Instruction
0101 PR
0102 UPT
0107 SCKPF
010B TAM
010C SAM24
010D SAM31
010E SAM64
01FF TRAP2
04 SPM
05 BALR Branch And Load Register RR Branch Instruction



06 BCTR Branch on CounT Register RR Branch Instruction
07 BCR
0A SVC SuperVisor Call Immediate Control Flow Instruction
0B BSM
0C BASSM
0D BASR Branch And Store Register
0E MVCL MoVe Character Long
0F CLCL Compare Logical Character Long
10 LPR
11 LNR
12 LTR Load and Test Register
13 LCR Load and Compare Register
14 NR aNd Register
15 CLR Compare Logical Register RR
16 OR Or Register RR
17 XR eXclusive-or Register RR
18 LR Load Register RR
19 CR Compare Register RR
1A AR Add Register RR Arithmetic Instruction
1B SR Subtract Register RR Arithmetic Instruction
1C MR Multiply Register RR Arithmetic Instruction
1D DR Divide Register RR Arithmetic Instruction
1E ALR Add Logical Register RR Arithmetic Instruction
1F SLR Subtract Logical Register RR Arithmetic Instruction
20 LPDR
21 LNDR
22 LTDR
23 LCDR
24 HDR
25 LDXR
25 LRDR
26 MXR
27 MXDR
28 LDR
29 CDR Compare Double Register
2A ADR Add Double Register RR Arithmetic Instruction
2B SDR Subtract Double Register RR Arithmetic Instruction
2C MDR Multiply Double Register RR Arithmetic Instruction
2D DDR Divide Double Register RR Arithmetic Instruction
2E AWR
2F SWR
30 LPER
31 LNER
32 LTER
33 LCER
34 HER
35 LEDR
35 LRER
36 AXR
37 SXR
38 LER
39 CER
3A AER
3B SER
3C MER
3C MDER
3D DER
3E AUR
3F SUR
40 STH STore Halfword
41 LA Load Address
42 STC STore Character
43 IC Insert Character
44 EX EXecute
45 BAL Branch And Link
46 BCT Branch on CounT
47 BC Branch on Condition
48 LH Load Halfword
49 CH Compare Halfword
4A AH Add Halfword RX Arithmetic Instruction
4B SH Subtract Halfword RX Arithmetic Instruction
4C MH Multiply Halfword RX Arithmetic Instruction
4D BAS Branch And Store
4E CVD ConVert to Decimal
4F CVB ConVert to Binary
50 ST STore
51 LAE
54 N aNd
55 CL Compare Logical
56 O Or
57 X eXclusive or
58 L Load
59 C Compare
5A A Add
5B S Subtract
5C M Multiply
5D D Divide
5E AL Add Logical
5F SL Subtract Logical
60 STD
67 MXD
68 LD Load Double
69 CD Compare Double
6A AD Add Double
6B SD Subtract Double
6C MD Multiply Double
6D DD Divide Double
6E AW
6F SW
70 STE
71 MS
78 LE
79 CE
7A AE
7B SE
7C ME
7C MDE
7D DE
7E AU
7F SU
80 SSM
82 LPSW Load Program Status Word Data Transfer Instruction
83 Diagnose Diagnose
84 BRXH Branch Register on indeX High
85 BRXLE Branch Register on indeX Low or Equal
86 BXH Branch on indeX High
87 BXLE Branch on indeX Low or Equal
88 SRL Shift Right Logical
89 SLL Shift Left Logical
8A SRA Shift Right Arithmetic
8B SLA Shift Left Arithmetic
8C SRDL Shift Right Double Logical
8D SLDL Shift Left Double Logical
8E SRDA Shift Right Double Arithmetic
8F SLDA Shift Left Double Arithmetic
90 STM STore Multiple
91 TM Test under Mask
92 MVI MoVe Immediate
93 TS Test and Set
94 NI aNd Immediate
95 CLI Compare Logical Immediate
96 OI Or Immediate
97 XI eXclusive-or Immediate
98 LM Load Multiple
99 TRACE
9A LAM
9B STAM
A50 IIHH
A51 IIHL
A52 IILH
A53 IILL
A54 NIHH
A55 NIHL
A56 NILH
A57 NILL
A58 OIHH
A59 OIHL
A5A OILH
A5B OILL
A5C LLIHH
A5D LLIHL
A5E LLILH
A5F LLILL
A70 TMLH
A70 TMH
A71 TMLL
A71 TML
A72 TMHH
A73 TMHL
A74 BRC
A75 BRAS
A76 BRCT
A77 BRCTG
A78 LHI
A79 LGHI
A7A AHI
A7B AGHI
A7C MHI
A7D MGHI
A7E CHI
A7F CGHI
A8 MVCLE
A9 CLCLE
AC STNSM
AD STOSM
AE SIGP
AF MC
B1 LRA
B202 STIDP
B204 SCK
B205 STCK
B206 SCKC
B207 STCKC
B208 SPT
B209 STPT
B20A SPKA
B20B IPK
B20D PTLB
B210 SPX
B211 STPX
B212 STAP
B214 SIE
B218 PC
B219 SAC
B21A CFC
B221 IPTE
B222 IPM
B223 IVSK
B224 IAC
B225 SSAR
B226 EPAR
B227 ESAR
B228 PT
B229 ISKE
B22A RRBE
B22B SSKE
B22C TB
B22D DXR
B22E PGIN
B22F PGOUT
B230 CSCH
B231 HSCH
B232 MSCH
B233 SSCH
B234 STSCH
B235 TSCH
B236 TPI
B237 SAL
B238 RSCH
B239 STCRW
B23A STCPS
B23B RCHP
B23C SCHM
B240 BAKR
B241 CKSM
B244 SQDR
B245 SQER
B246 STURA
B247 MSTA
B248 PALB
B249 EREG
B24A ESTA
B24B LURA
B24C TAR
B24D CPYA
B24E SAR
B24F EAR
B250 CSP
B252 MSR
B254 MVPG
B255 MVST
B257 CUSE
B258 BSG
B25A BSA
B25D CLST
B25E SRST
B263 CMPSC
B276 XSCH
B277 RP
B278 STCKE
B279 SACF
B27D STSI
B299 SRNM
B29C STFPC
B29D LFPC
B2A5 TRE
B2A6 CUUTF
B2A7 CUTFU
B2B1 STFL
B2B2 LPSWE
B2FF TRAP4
B300 LPEBR
B301 LNEBR
B302 LTEBR
B303 LCEBR
B304 LDEBR
B305 LXDBR
B306 LXEBR
B307 MXDBR
B308 KEBR
B309 CEBR
B30A AEBR
B30B SEBR
B30C MDEBR
B30D DEBR
B30E MAEBR
B30F MSEBR
B310 LPDBR
B311 LNDBR
B312 LTDBR
B313 LCDBR
B314 SQEBR
B315 SQDBR
B316 SQXBR
B317 MEEBR
B318 KDBR
B319 CDBR
B31A ADBR
B31B SDBR
B31C MDBR
B31D DDBR
B31E MADBR
B31F MSDBR
B324 LDER
B325 LXDR
B326 LXER
B336 SQXR
B337 MEER
B340 LPXBR
B341 LNXBR
B342 LTXBR
B343 LCXBR
B344 LEDBR
B345 LDXBR
B346 LEXBR
B347 FIXBR
B348 KXBR
B349 CXBR
B34A AXBR
B34B SXBR
B34C MXBR
B34D DXBR
B350 TBEDR
B351 TBDR
B353 DIEBR
B357 FIEBR
B358 THDER
B359 THDR
B35B DIDBR
B35F FIDBR
B360 LPXR
B361 LNXR
B362 LTXR
B363 LCXR
B365 LXR
B366 LEXR
B367 FIXR
B369 CXR
B374 LZER
B375 LZDR
B376 LZXR
B377 FIER
B37F FIDR
B384 SFPC
B38C EFPC
B394 CEFBR
B395 CDFBR
B396 CXFBR
B398 CFEBR
B399 CFDBR
B39A CFXBR
B3A4 CEGBR
B3A5 CDGBR
B3A6 CXGBR
B3A8 CGEBR
B3A9 CGDBR
B3AA CGXBR
B3B4 CEFR
B3B5 CDFR
B3B6 CXFR
B3B8 CFER
B3B9 CFDR
B3BA CFXR
B3C4 CEGR
B3C5 CDGR
B3C6 CXGR
B3C8 CGER
B3C9 CGDR
B3CA CGXR
B6 STCTL
B7 LCTL
B900 LPGR
B901 LNGR
B902 LTGR
B903 LCGR
B904 LGR
B905 LURAG
B908 AGR
B909 SGR
B90A ALGR
B90B SLGR
B90C MSGR
B90D DSGR
B90E EREGG
B90F LRVGR
B910 LPGFR
B911 LNGFR
B912 LTGFR
B913 LCGFR
B914 LLGFR
B916 LCGR
B917 LLGTR
B918 AGFR
B919 SGFR
B91A ALGFR
B91B SLGFR
B91C MSGFR
B91D DSGFR
B91F LRVR
B920 CGR
B921 CLGR
B925 STURG
B930 CGFR
B931 CLGFR
B946 BCTGR
B980 NGR
B981 OGR
B982 XGR
B986 MLGR
B987 DLGR
B988 ALCGR
B989 SLBGR
B98D EPSW
B990 TRTT
B991 TRTO
B992 TROT
B993 TROO
B996 MLR
B997 DLR
B998 ALCR
B999 SLBR
B99D ESEA
BA CS
BB CDS
BD CLM
BE STCM Store Characters under Mask
BF ICM Insert Characters under Mask
C00 LARL
C04 BRCL
C05 BRASL
D1 MVN MoVe Numeric
D2 MVC MoVe Character
D3 MVZ MoVe Zoned
D4 NC aNd Character
D5 CLC Compare Logical Character
D6 OC Or Character
D7 XC eXclusive-or Character
D9 MVCK
DA MVCP
DB MVCS
DC TR TRanslate
DD TRT TRanslate and Test
DE ED EDit
DF EDMK EDit and MarK
E1 PKU
E2 UNPKU
E303 LRAG
E304 LG
E308 AG
E309 SG
E30A ALG
E30B SLG
E30C MSG
E30D DSG
E30E CVBG
E30F LRVG
E314 LGF
E315 LGH
E316 LLGF
E317 LLGT
E318 AGF
E319 SGF
E31A ALGF
E31B SLGF
E31C MSGF
E31D DSGF
E31E LRV
E31F LRVH
E320 CG
E321 CLG
E324 STG
E32E CVDG
E32F STRVG
E330 CGF
E331 CLGF
E33E STRV
E33F STRVH
E346 BCTG
E380 NG
E381 OG
E382 XG
E386 MLG
E387 DLG
E388 ALCG
E389 SLBG
E38E STPQ
E38F LPQ
E390 LLGC
E391 LLGH
E396 ML
E397 DL
E398 ALC
E399 SLB
E500 LASP
E501 TPROT
E502 STRAG
E50E MVCSK
E50F MVCDK
E8 MVCIN
E9 PKA
EA UNPKA
EB04 LMG
EB0A SRAG
EB0B SLAG
EB0C SRLG
EB0D SLLG
EB0F TRACG
EB1C RLLG
EB1D RLL
EB20 CLMH
EB24 STMG
EB25 STCTG
EB26 STMH
EB2C STCMH
EB2F LCTLG
EB30 CSG
EB3E CDSG
EB44 BXHG
EB45 BXLEG
EB80 ICMH
EB8E MVCLU
EB8F CLCLU
EB96 LMH
EBC0 TP
EC44 BRXHG
EC45 BRXLG
ED04 LDEB
ED05 LXDB
ED06 LXEB
ED07 MXDB
ED08 KEB
ED09 CEB
ED0A AEB
ED0B SEB
ED0C MDEB
ED0D DEB
ED0E MAEB
ED0F MSEB
ED10 TCEB
ED11 TCDB
ED12 TCXB
ED14 SQEB
ED15 SQDB
ED17 MEEB
ED18 KDB
ED19 CDB
ED1A ADB
ED1B SDB
ED1C MDB
ED1D DDB
ED1E MADB
ED1F MSDB
ED24 LDE
ED25 LXD
ED26 LXE
ED34 SQE
ED35 SQD
ED37 MEE
EE PLO
EF LMD
F0 SRP
F1 MVO Move with Offset
F2 PACK PACK
F3 UNPK UNPacK
F8 ZAP Zero and Add Packed
F9 CP
FA AP Add Packed
FB SP Subtract Packed
FC MP Multiply Packed
FD DP Divide Packed