Assembler Language As a Higher Level Language

Total Page:16

File Type:pdf, Size:1020Kb

Assembler Language As a Higher Level Language Assembler University 306-307 Assembler Language as a Higher Level Language: Macros and Conditional Assembly Techniques SHARE 99, Summer Conference 2002, Sessions 8167-8168 John R. Ehrman [email protected] [email protected] International Business Machines Corporation Silicon Valley (nee Santa Teresa) Laboratory 555 Bailey Avenue San Jose, California 95141 Synopsis: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----. This tutorial introduces the powerful concepts of conditional assembly supported by the IBM High Level Assembler for MVS & VM & VSE , and provides examples of its use in both "open code" and in macro instructions. The examples in this document are for purposes of illustration only, and no warranty of correctness or applicability is implied or expressed. Permission is granted to SHARE Incorporated to publish this material in the proceedings of the SHARE 99, Summer Conference 2002. IBM retains the right to publish this material elsewhere. Copyright Notices and Trademarks -------------------------~ © Copyright IBM Corporation 1995, 2002. All rights reserved. Note to U.S. Government Users: Doc­ umentation subject to restricted rights. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. The following terms, denoted by an asterisk C-) in this publication, are trademarks or registered trade­ marks of the International Business Machines Corporation in the United States and/or other coun­ tries: IBM ESA System/370 System/390 MYS/ES A OS/390 YM/ESA zSeries YSE/ESA YSE z/OS z/VM DFSMS zlArchitecture Publications, Collection Kits, Web Sites -------------------------. The currently available product publications for High Level Assembler for MYS & YM & YSE are: High Level Assembler for MYS & YM & YSE Language Reference, SC26-4940 High Level Assembler for MYS & VM & YSE Programmer's Guide, SC26-4941 • High Level Assembler for MVS & YM & YSE General Information, GC26-4943 High Level Assembler for MVS & VM & YSE Licensed Program Specifications, GC26-4944 • High Level Assembler for MYS & VM & VSE Installation and Customization Guide, SC26-3494 • High Level Assembler for MVS & VM & YSE Toolkit Feature Interactive Debug Facility User's Guide, GC26-8709 • High Level Assembler for MVS & VM & YSE Toolkit Feature User's Guide, GC26-8710 High Level Assembler for MVS & VM & VSE Toolkit Feature Installation and Customization Guide, GC26-8711 High Level Assembler for MVS & VM & VSE Toolkit Feature Interactive Debug Facility Reference Summary, GC26-8712 • High Level Assembler for MYS & VM & VSE Release 2 Presentation Guide, SG24-3910 Soft-copy High Level Assembler for MVS & VM & YSE publications are available on the following IBM Online Library Omnibus Edition Compact Disks: • VSE Collection, SK2T-0060 MVS Collection, SK2T-0710 • Transaction Processing and Data Collection, SK2T-0730 • VM Collection, SK2T-2067 • OS/390 Collection, SK2T-6700 (BookManager), SK2T-6718 (PDF) HLASM publications are available online at the HLASM web site: http://www.ibm.com/software/ad/hlasm/ Acknowledgments ---------------------------------. I am grateful to several people have helped make this material more reliable and readable: • Many friends and colleagues at SHARE have offered advice (and correction) during and after pres­ entations. Abe Kornelis ([email protected], Linschoten, The Netherlands) provided many helpful suggestions and caught many inaccuracies. ii Assembler Language as a Higher Level Language, SHARE Summer 2002 Contents Conditional Assembly and Macro Overview 1 Part 1: The Conditional Assembly Language 3 Evaluation, Substitution, and Selection 5 Variable Symbols . 6 Oeclaring Variable Symbols ...... 8 Substitution . .... 10 Comments on Substitution, Evaluation, and Re-Scanning 12 Assigning Values to Variable Symbols: SET Statements 14 Evaluating Conditional-Assembly Expressions ....... 15 Evaluating and Assigning Arithmetic Expressions: SETA 16 Arithmetic Expressions: Internal Arithmetic Functions 17 SETA Statements vs. EQU Statements ........ 19 Evaluating and Assigning Boolean Expressions: SETB . 20 Evaluating and Assigning Character Expressions: SETC 22 String Concatenation 25 Substrings . ... 26 String Lengths ........................... 28 Character Expressions: Internal Character Functions 29 External Conditional-Assembly Functions ...... 32 Conditional Expressions with Mixed Operand Types 33 Statement Selection .................... 34 Sequence Symbols and the ANOP Statement 35 ANOP Statement ........ 36 The AGO Statement . .... 37 The Extended AGO Statement . 38 The AIF Statement . ......... 39 The Extended AIF Statement .......... 40 Logical Operators in SETA, SETB, and AIF Statements 41 Displaying Variable Symbol Values: The MNOTE Statement . 42 Examples of Conditional Assembly ............... 43 Example 1: Generate a Sequence of Byte Values ..... 44 Example 2: Generating System-Dependent 1/0 Statements 46 Conditional Assembly Language Eccentricities ........ 47 Part 2: Basic Macro Concepts ............... 48 What is a Macro Facility? .................... 49 Benefits of Macro Facilities ................. 50 The Macro Concept: Fundamental Mechanisms ............... 51 Text Insertion . 52 Text Parameterization and Argument Association .............. 53 Text Seledion . ............ 54 Macro Call Nesting . ... 55 Macro Definition Nesting . ..... 57 The Assembler Language Macro Definition ...... 59 Macro-Instruction Definition Example . 60 Macro-Instruction Recognition Rules . .. 61 Macro-Instruction Recognition: Details 62 Macro-Definition Encoding . ..... 63 Nested Macro Definition in High Level Assembler ...... 64 Macro Expansion, Generated Statements, and the MEXIT Statement 65 Macro Comments and Readability Aids ............... 66 Example 1: Define Equated Symbols for Registers ......... 67 Macro Parameters and Arguments . 68 Macro-Definition Parameters . ... 69 Macro-lnstrudion Arguments . ..... 70 Macro Parameter-Argument Association 71 Constructed Keyword Arguments 73 Contents iii Example 2: Generate a Sequence of Byte Values (BYTESEQ1) 74 Macro Parameter Usage in Model Statements ...... 75 Macro Argument Attributes and Structures ........ 76 Macro-Instruction Argument Properties: Type Attribute 78 Macro-Instruction Argument Properties: Count Attribute 80 Macro-Instruction Argument Properties: Number Attribute 81 Macro-Instruction Argument Lists and Sublists ....... 82 Macro-Instruction Argument Lists and the &SYSLIST Variable Symbol 84 Macro Argument Lists and Sublists ...... 85 Inner-Macro Sublists ..... '. .... 85 Control of Macro Argument Sublists 87 Global Variable Symbols ........ 88 Variable Symbol Scope Rules: Summary 89 Macro Debugging Techniques ....... 91 Macro Debugging: The MNOTE Statement 92 Macro Debugging: The MHELP Statement 93 Macro Debugging: The ACTR Statement 95 Macro Debugging: The LIBMAC Option . 96 Macro Debugging: The PRINT MCALL Statement . 97 IBM Macro Libraries 98 Part 3: Macro Techniques 99 Macro Techniques Case Studies 101 Case Study 1: Defining Equated Symbols for Registers 103 Case Study 2: Generating a Sequence of Byte Values 107 Case Study 3: "MVC2" Macro Uses Source Operand Length 110 Case Study 4: Conversion Between Hex and Decimal 112 Macro-Time Conversion from Hex to Decimal . 113 Macro-Time Conversion from Decimal to Hex ....... 115 Case Study 5: Generate a List of Named Integer Constants 117 Case Study 6: Using the AREAD Statement .......... 121 Case Study 6a: Creating Length-Prefixed Message Texts 122 Simplest Prefixed Message Text .......... 123 More General Prefixed Message Text ...... 123 Prefixed Message Text with the AREAD Statement 126 Case Study 6b: Block Comments ........... 128 Case Study 7: Macro Recursion . ... 130 Recursion Example 1: Indirect Addressing ..... 131 Recursion Example 2: Factorial Function Values 133 Recursion Example 3: Fibonacci Numbers ..... 135 Case Study 8: Defining Macros for Bit-Handling Operations . 137 Basic Bit Handling Techniques ............ 138 Case Study 8a: Bit-Handling Macros - Simple Forms 140 Simple Bit-Manipulation Macros .......... 143 Simple Bit-Manipulation Macros: Setting Bits ON 144 Simple Bit-Manipulation Macros: Inverting and Setting Bits OFF 146 Simple Bit-Testing Macros ...................... 148 Case Study 8b: Bit-Handling Macros - Advanced Forms 150 Bit-Handling "Micro Language" and "Micro-Compiler" 151 Declaring Bit Names .............. 154 Improved Bit-Manipulation Macros ..... 159 Using Declared Bit Names in a BitOn Macro 161 Using Declared Bit Names in a BBitOn Macro 164 Case Study 9: Defining and Using Data Types 172 Case Study 9a: Type Sensitivity - Simple Polymorphism 174 Shortcomings of Assembler-Assigned Types 177 Symbol Attributes and Lookahead Mode 178 The LOCTR Statement ........ 179 Case Study 9b: Type Checking ..... 180 Instruction-Operand Type Checking . 181 Instruction-Operand Type Checking (Generalized) 183 The AINSERT Statement . 184 iv Assembler Language as a Higher Level Language, SHARE Summer 2002 User-Defined Assembler Type Attributes ...... 188 Instruction-Operand-Register Type Checking 190 Case Study 9c: Encapsulated Abstract Data Types 192 Calculating with Date Variables ...... 196 Calculating with Interval Variables .... 198 Comparison Operators for Dates and Intervals 202 Case Study 10: "Front-Ending" a Macro .... 204 Summary ..................... 206 Appendix A. External Conditional Assembly Functions ............... 208 Ex1ernal Conditional Assembly Functions 209 SETAF External Function Interface ..... 210 Arithmetic-Valued Function Example: LOG2 211 SETCF External
Recommended publications
  • High Level Assembler Macro Facility
    A++: Using the World's Most Powerful Macro Facility With High Level Assembler Parts 1 and 2 SHARE 119, Anaheim CA, Summer 2012 Presented by Tom Wasik, IBM [email protected] Contents prepared by John R. Ehrman [email protected] International Business Machines Corporation Silicon Valley Laboratory 555 Bailey Avenue San Jose, California 95141 USA Synopsis: This tutorial introduces the powerful concepts of conditional assembly supported by the High Level Assembler for z/OS, z/VM, & z/VSE, and provides examples of its use in both “open code” and in macro instructions. The examples in this document are for purposes of illustration only, and no warranty of correctness or applicability is implied or expressed. Permission is granted to SHARE Incorporated to publish this material in the proceedings of the SHARE 119. IBM retains the right to publish this material elsewhere. © Copyright IBM Corporation 1995, 2012. All rights reserved. Copyright Notices and Trademarks © Copyright IBM Corporation 1995, 2012. All rights reserved. Note to U.S. Government Users: Doc- umentation subject to restricted rights. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. The following terms, denoted by an asterisk (*) in this publication, are trademarks or registered trademarks of the International Business Machines Corporation in the United States and/or other countries: IBM System/370 System/390 zSeries z/OS z/VM z/VSE OS/390 DFSMS z/Architecture ESA Publications and Web Site The currently available product
    [Show full text]
  • Ibm High Level Assembler Manual Download Ibm High Level Assembler Manual
    Ibm High Level Assembler Manual Download Ibm High Level Assembler Manual This the first version of IBM Macro Assembler, released alongside the IBM PC. IBM Macro Assembler is an IBM OEM rebranded release of Microsoft Macro Assembler, and was intended only for use with the IBM PC. Installation instructions. This archive contains a 160k disk image, and is compatible with IBM PC-DOS 1.0 and later. IBM System-360 Operating System Assembler Languag§, Order Number GC28-6514. The Assembler Language manual contains the basic assembler and macro asserrbler specifications, except those unique to Assembler H. IEM System-360 Operating System Asserrbler H Language Specifications, Order Numter GC26- 3771. High Level Assembler Toolkit: HMQ4160: JMQ416A: SYS1: 5655-P97: Encryption Facility DFSMSdss Encryption: HCF773D: HCF773D: SYS1: 5655-P97: Encryption Facility Encrypt Ser: HCF7740: HCF7740: SYS1: 5655-SDK: IBM SDK for Node.Js - z-OS: HALU600: HALU600: SYS1: 5650-ZOS: ICKDSF - Device Support Facilities, Base: EDU1H01: EDU1H01: SYS1: 5650-ZOS: Environmental Record Editing and Printing: EER3500: EER3500 The next line seems to indicate to execute HLASM, the high level assembler, with the option to compile, load, and go – assemble the program and execute it. The next line indicates that the input will be from the lines of text following the JCL. The next line invokes the TITLE macro to place the title at the top of each printed page. See IBM-supplied default assembler options for a list of the changes to the IBM-supplied default assembler options from High Level Assembler Release 4. You specify the options at assembly time on: An external file (z-OS and CMS) or library member (z-VSE) The assembler programs are written in IBM Mainframe Assembler, they will compile using Assembler-H or HLASM.
    [Show full text]
  • High Level Assembler for Z/OS & Z/VM & Z/VSE
    High Level Assembler for z/OS & z/VM & z/VSE 1.6 Installation and Customization Guide IBM SC26-3494-05 Note Before using this information and the product it supports, be sure to read the general information under “Notices” on page 193. This edition applies to IBM High Level Assembler for z/OS & z/VM & z/VSE, Release 6, Program Number 5696-234 and to any subsequent releases until otherwise indicated in new editions. Make sure that you are using the correct edition for the level of the product. Order publications through your IBM® representative or the IBM branch office serving your locality. IBM welcomes your comments. For information on how to send comments, see “How to send your comments to IBM” on page xx. © Copyright International Business Machines Corporation 1992, 2021. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures................................................................................................................. xi Tables................................................................................................................ xiii About this document.......................................................................................... xvii Brief overview of High Level Assembler...................................................................................................xvii Who should use this document................................................................................................................xvii
    [Show full text]
  • High Level Assembler for MVS & VM & VSE Programmer's Guide
    IBM High Level Assembler for MVS & VM & VSE Programmer’s Guide Release 5 SC26-4941-04 IBM High Level Assembler for MVS & VM & VSE Programmer’s Guide Release 5 SC26-4941-04 Note! Before using this information and the product it supports, be sure to read the general information under “Notices” on page 422. Fifth Edition (June 2004) This edition applies to IBM High Level Assembler for MVS & VM & VSE, Release 5, Program Number 5696-234 and to any subsequent releases until otherwise indicated in new editions. Make sure you are using the correct edition for the level of the product. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address below. A form for reader's comments is provided at the back of this publication. If the form has been removed, address your comments to: IBM Corporation J87/D325 555 Bailey Avenue SAN JOSE, CA 95141-1003 United States of America When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1982, 2004. All rights reserved. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Contents About this Manual .................................... xi Who Should Use this Manual .............................. xi Programming Interface Information ........................... xi Organization of this Manual ............................... xi IBM High Level Assembler for MVS & VM & VSE Publications .......... xiv Publications . xiv Softcopy Publications . xv The High Level Assembler web site ........................
    [Show full text]
  • IBM Z/Transaction Processing Facility Enterprise Edition V1.1 — the Future of High Availability Transaction Processing
    Software Announcement October 7, 2004 IBM z/Transaction Processing Facility Enterprise Edition V1.1 — The future of high availability transaction processing Overview • Low cost — z/TPF offers a low cost per transaction for high-volume At a glance z/Transaction Processing Facility real-time transactions. This Enterprise Edition (z/TPF) V1.1 capability alone represents a Benefits for z/Transaction (5748-T15) is a high-performance competitive advantage for Processing Facility Enterprise operating system specifically delivery of business services in Edition (z/TPF) V1.1 and designed to provide high availability the marketplace. z/Transaction Processing Facility for demanding high-volume, Database Facility (z/TPFDF) V1.1 • Efficiency — z/TPF supports the real-time transaction processing for include: IBM 64-bit z/Architecture with mission critical e-business the use of 64-bit real addresses • applications. z/TPF runs on and Ability to handle tens of and 64-bit virtual addresses exploits IBM zSeries thousands of transactional enabling large-scale memory servers, an infrastructure offering for messages per second spaces permitting large • transaction processing with high High reliability and availability applications and large memory quality of service demands. as integral parts of the product tables. • Fast response times for transactions As the next generation of on demand • Open development environment • Low cost per transaction transaction processing systems, — z/TPF also uses the GNU tool • 64-bit support on zSeries z/TPF has been developed on the chain. z/TPF can share servers to provide for large architecture of IBM TPF V4.1. TPF applications, tooling, and address space capability V4.1, widely used in the Travel, development infrastructure with • Large redundant single Banking/Finance, and Public Sector the most common open system database capable of addressing industry segments, is well suited to available, Linux .
    [Show full text]
  • ESP Workload Manager V5.5 Installation and Configuration Guide
    ESP Workload Manager Version 5.5 Installation and Configuration Guide ESP-5.5-IG-01 First Edition (June 2007) This documentation and any related computer software help programs (hereinafter referred to as the “Documentation”) is for the end user’s informational purposes only and is subject to change or withdrawal by CA at any time. This Documentation may not be copied, transferred, reproduced, disclosed, modified or duplicated, in whole or in part, without the prior written consent of CA. This Documentation is confidential and proprietary information of CA and protected by the copyright laws of the United States and international treaties. Notwithstanding the foregoing, licensed users may print a reasonable number of copies of the documentation for their own internal use, and may make one copy of the related software as reasonably required for back-up and disaster recovery purposes, provided that all CA copyright notices and legends are affixed to each reproduced copy. Only authorized employees, consultants, or agents of the user who are bound by the provisions of the license for the product are permitted to have access to such copies. The right to print copies of the documentation and to make a copy of the related software is limited to the period during which the applicable license for the Product remains in full force and effect. Should the license terminate for any reason, it shall be the user’s responsibility to certify in writing to CA that all copies and partial copies of the Documentation have been returned to CA or destroyed. EXCEPT AS OTHERWISE STATED IN THE APPLICABLE LICENSE AGREEMENT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS DOCUMENTATION “AS IS” WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
    [Show full text]
  • HLASM V1R6 Programmer's Guide Running Your Assembled Program on TSO
    High Level Assembler for z/OS & z/VM & z/VSE IBM Programmer's Guide Version 1 Release 6 SC26-4941-08 High Level Assembler for z/OS & z/VM & z/VSE IBM Programmer's Guide Version 1 Release 6 SC26-4941-08 Note Before using this information and the product it supports, be sure to read the general information under “Notices” on page 425. This edition applies to IBM High Level Assembler for z/OS & z/VM & z/VSE, Release 6, Program Number 5696-234 and to any subsequent releases until otherwise indicated in new editions. Make sure that you are using the correct edition for the level of the product. Order publications through your IBM representative or the IBM branch office serving your locality. IBM welcomes your comments. For information on how to send comments, see “How to send your comments to IBM” on page xxi. © Copyright IBM Corporation 1992, 2017. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures ............... ix *PROCESS statement options ....... 37 Default options ............ 37 Tables ............... xi Invoking the assembler dynamically ..... 38 Coding rules ............. 38 Assembler options ............ 39 About this document ........ xiii ADATA............... 39 Who should use this document ....... xiii ALIGN ............... 39 Programming interface information ...... xiii ASA (z/OS and CMS) .......... 40 Organization of this document........ xiii BATCH............... 40 High Level Assembler documents ....... xv CODEPAGE ............. 41 Documents ............. xv COMPAT .............. 42 Collection kits ............ xvi DBCS ............... 43 Related publications ........... xvii DECK ............... 44 Syntax notation ............ xvii DISK (CMS) ............. 44 DXREF ............... 44 How to send your comments to IBM xxi ERASE (CMS) ...........
    [Show full text]
  • Systems/ASM Version 1.95
    Systems/ASM Version 1.95 Copyright c 2016, Dignus, LLC Systems/ASM Version 1.95 i Copyright c 2016 Dignus LLC, 8378 Six Forks Road Suite 203 Raleigh NC, 27615. World rights reserved. No part of this publication may be stored in a retrieval system, transmitted, or reproduced in any way, including but not limited to pho- tocopy, photograph, magnetic or other record, without the prior agreement and written permission of the publisher. Portions Copyright c 1995-2002 Mark Adler Portions Copyright c 1998 Gilles Vollant Portions Copyright c 1995-2005 International Business Machines Corporation and others. All Rights reserverd. Copyright (c) 1995-2005 International Business Machines Corporation and oth- ers All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. IBM, S/390, zSeries, z/OS, OS/390, MVS, z/VSE, VSE, z/VM, VM, CMS, HLASM, and High Level Assembler are registered trademarks of International Business Ma- chines Corporation. UNIX is a registered trademark in the United States and/or other countries licensed exclusively through X/Open Company Limited. Microsoft, Windows, and Windows NT are trademarks of Microsoft Corporation in the United States and other countries.
    [Show full text]
  • HLASM V1R6 General Information Figures
    High Level Assembler for z/OS & z/VM & z/VSE IBM General Information Version 1 Release 6 GC26-4943-08 High Level Assembler for z/OS & z/VM & z/VSE IBM General Information Version 1 Release 6 GC26-4943-08 Note Before using this information and the product it supports, be sure to read the general information under “Notices” on page 85. This edition applies to IBM High Level Assembler for z/OS & z/VM & z/VSE, Release 6, Program Number 5696-234 and to any subsequent releases until otherwise indicated in new editions. Make sure you are using the correct edition for the level of the product. Order publications through your IBM representative or the IBM branch office serving your locality. IBM welcomes your comments. For information on how to send comments, see “How to send your comments to IBM” on page xiii. When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright IBM Corporation 1992, 2017. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures ............... v External dummy sections ......... 13 Number of external symbols........ 13 Tables ............... vii Addressing extensions ........... 14 Labeled USINGs and qualified symbols .... 14 Dependent USINGs........... 15 About this manual .......... ix Specifying assembler options in external file or Who should use this manual......... ix library member ............. 16 Organization of this manual ......... ix Specifying assembler options in the source High Level Assembler Publications ...... x program .............
    [Show full text]
  • High Level Assembler for Z/OS & Z/VM & Z/VSE: HLASM V1R6
    High Level Assembler for z/OS & z/VM & z/VSE 1.6 General Information IBM GC26-4943-06 Note Before using this information and the product it supports, be sure to read the general information under “Notices” on page 75. This edition applies to IBM High Level Assembler for z/OS & z/VM & z/VSE, Release 6, Program Number 5696-234 and to any subsequent releases until otherwise indicated in new editions. Make sure you are using the correct edition for the level of the product. Order publications through your IBM® representative or the IBM branch office serving your locality. IBM welcomes your comments. For information on how to send comments, see “How to send your comments to IBM” on page xv. When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright International Business Machines Corporation 1992, 2021. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures................................................................................................................ vii Tables.................................................................................................................. ix About this manual................................................................................................ xi Who should use this manual......................................................................................................................
    [Show full text]
  • Raincode Assembler Compiler (Tool Demo)
    Raincode Assembler Compiler (Tool Demo) Volodymyr Blagodarov Yves Jaradin Vadim Zaytsev Raincode, Belgium Raincode, Belgium Raincode, Belgium [email protected] [email protected] [email protected] Abstract from raw machine code) include so-called “third genera- IBM’s High Level Assembler (HLASM) is a low level pro- tion languages” (3GLs, typically COBOL, PL/I, REXX or gramming language for z/Architecture mainframe comput- CLIST) and “fourth generation languages” (4GLs like RPG, ers. Many legacy codebases contain large subsets written in CA Gen, PACBASE, Informix/Aubit, ABAP, CSP, QMF — HLASM for various reasons, and such components usually essentially domain-specific languages for report processing, had to be manually rewritten in COBOL or PL/I before a database communication, transaction handling, interfaces, migration to a modern framework could take place. Now, model-based code generation, etc). To name a few concrete the Raincode ASM370 compiler for .NET supports HLASM examples of good reasons for HLASM usage [14]: syntax and emulates the data types and behaviour of the orig- ⋄ Fine-grained error handling, since it is much easier inal language, allowing one to port, maintain and interac- to circumvent standard error handling mechanisms and tively debug legacy mainframe assembler code under .NET. (re)define recovery strategies in HLASM than in any 3GL Categories and Subject Descriptors D.3.2 [Macro and as- or 4GL. sembly languages]; D.3.4 [Processors] ⋄ Ad hoc memory management, since HLASM allows to manipulate addressing modes directly, change them from Keywords mainframe; assembler; software renovation program to program on the fly, allocate and deallocate storage dynamically. 1. Background ⋄ Optimisation for program size and performance, as well The assembler language for mainframes exists since 1964 as efficient usage of operating system facilities not avail- when the Basic Assembler Language (BAL) was introduced able directly from higher level languages, such as con- for the IBM System/360.
    [Show full text]
  • IBM High Level Assembler for Z/OS, Z/VM, and Z/VSE V1.6 Delivers Improved Programmer Productivity and Application Reliability
    IBM Asia Pacific Announcement AP08-0145, dated June 24, 2008 IBM High Level Assembler for z/OS, z/VM, and z/VSE V1.6 delivers improved programmer productivity and application reliability AP distribution ............................................2 At a glance Description .................................................2 Product positioning .................................... 3 High Level Assembler for z/OS, z/VM, and z/VSE V1.6 delivers new Program number ........................................3 capability and function: Reference information ............................... 3 Technical information .................................4 • An internal services interface for I/O exits Ordering information ..................................5 • Mnemonic suffix tags to eliminate ambiguity between machine Terms and conditions ................................ 6 instruction and macro mnemonics IBM Electronic Services .............................7 • Two new address constants resolving to long-displacement form Prices .........................................................7 • Incremental enhancements to V1R5 are integrated and documented The High Level Assembler for Linux on System z Feature supports application development on IBM Linux for System z. Overview High Level Assembler for z/OS®, z/VM®, and z/VSE® V1.6 adds new capabilities to simplify application programming, maintenance, and enhancement tasks. Among these are: • A HLASM Services Interface delivers important operating system environment services to let you write platform-independent
    [Show full text]