This action might not be possible to undo. Are you sure you want to continue?
Assembler Programming Workshop
Assembler Programming Workshop
A Legac-e Education Course
Module 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Title Assembler Introduction Data Areas Beginning and Ending Basic Decision Making Moving data around storage Non-VSAM queued I/O macros Load and Store Register contents DSECTs and Getting Storage More Decision Making Binary Integer Arithmetic Decimal Arithmetic Bit Manipulation Handling Sub-routines VSAM I/O macros
Appendix A Appendix B Appendix C
Assembler Instructions with page reference Machine Instructions Mnemonics with page reference Macros used, with page reference
Assembler Programming Workshop
A Legac-e Education Course
At the completion of this course, students will know and understand how to use the IBM Assembler Programming Language. All students will be able to: • • • • Explain the assembly process Explain the general syntax and structure of the language Demonstrate the ability to start and end programs correctly Select and use appropriate instructions for moving data between registers and storage Select and use appropriate instructions for moving data around storage Use appropriate instructions to alter the logic flow of a program. Perform binary integer arithmetic Perform decimal arithmetic Perform bit manipulation Execute non-VSAM queued technique I/O macros. Pass control between sub-routines Perform VSAM ESDS I/O operations
• • • • • • • •
Sheffield. If you require more information about our Legac-e Education’s services. UK.co.co.legac-e. SL17 3LA Telephone (National) 0114 262 0933 Telephone (International) +44 114 262 0933 E-mail Website firstname.lastname@example.org .Legac-e Education Assembler Programming Workshop A Legac-e Education Course Course documentation All Legac-e designed to intended to material by course. please contact: Legac-e Education 228 Abbeydale Road South.uk www. South Yorkshire. Education course documentation is complement the course. Dore. and is not be used as stand alone reference those who have not attended the This course is designed and produced by KMS-IT Limited.
without the prior permission of the copyright owners. or transmitted in any form or by any means. or otherwise. stored in a retrieval system. © Copyright Legac-e Education 2004. No part of this publication may be reproduced.Legac-e Education Assembler Programming Workshop A KMS-IT Limited Course Notice All rights reserved. photographic. 2006 All registered or unregistered trademarks referenced in this material are the property of their respective owners. electronic. . mechanical.
Legac-e Education Module 1 Assembler Introduction © Copyright Legac-e Education 2004. 2006 .
Legac-e Education is a trade name of KMSIT Limited. whose registered address is: 228 Abbeydale Road South Dore Sheffield S17 3LA South Yorkshire UK Tel: +44 (0)114 262 0933 E-mail: enquiries@kmsitltd. produced in January 2006. Copying of any of the material is prohibited except with the express permission of the authors. and is the property of KMS-IT Limited.uk KMS-IT Limited is registered in England and Wales. No 3767263 . This material has been produced by. trading as Legac-e Education.Legac-e Education This is Version 2 of this document. irrespective of the elearning provider. Payment of a course fee entitles the subscriber to access to a single copy of both hardcopy and online material for the sole use of the subscriber.co.
Step 2 _________________________________________________ 14 Executable code .Assembler Introduction Topics Page Introduction ________________________________________________________1 Documentation and source code syntax______________________________2 The need for multiple documents________________________________________ 2 Instructions to the assembler___________________________________________________2 Machine code mnemonics _____________________________________________________2 Data area declarations ________________________________________________________2 Macro instructions ____________________________________________________________2 Additional documentation ______________________________________________ 4 Documentation location ________________________________________________ 4 Source code syntax ____________________________________________________ 6 Label _______________________________________________________________________6 Operation ___________________________________________________________________6 Operands ___________________________________________________________________8 Comments __________________________________________________________________8 Continuation _________________________________________________________________8 Assembly process _________________________________________________10 Overview _____________________________________________________________ 10 Assembly .Step 1 _____________________________________________________ 12 Program Bind . 2006 .Legac-e Education Module 1 .Step 3_______________________________________________ 16 General Purpose Registers _________________________________________18 Register sizes_________________________________________________________ 18 24-bit addressing____________________________________________________________18 31-bit addressing____________________________________________________________18 64-bit addressing____________________________________________________________18 Register conventions __________________________________________________ 20 Relocatable Addressability _________________________________________22 Addressability components ____________________________________________ 24 Base register _______________________________________________________________24 Displacement _______________________________________________________________24 An internal representation _____________________________________________ 26 Establishing addressability ____________________________________________ 28 Assembly time ______________________________________________________________28 Run time ___________________________________________________________________28 © Copyright Legac-e Education 2004.
6 Sample Assembly Procedure_______________________________38 © Copyright Legac-e Education 2004. 2006 .Legac-e Education Topics Page Practical example _____________________________________________________ 30 Multiple base registers ________________________________________________ 32 Instruction Notation ___________________________________________________ 34 z/OS 1.
The main topics covered are: • • • • • Documentation sources Source code syntax Assembly Process General Purpose Registers Relocatable addressability Module 1 .Legac-e Education Introduction The first module of the "Assembler Programming Workshop" sets the scene in which the IBM Assembler Language operates.Assembler Introduction Page 1 .
Page 2 Module 1 .Legac-e Education Documentation and source code syntax With high level programming languages such as COBOL and PL/I it is common to employ only two manuals. The source input to the assembler is likely to contain different types of statements. Instructions to the assembler SC26-4940 . The need for multiple documents Assembler Programming demands a greater understanding of the hardware infrastructure and operation as the instructions are part of the hardware. such as: Instructions to the assembler Machine code mnemonics Data area declarations Macro instructions The definitions of these statement types are spread across a number of manuals. and a Language Reference Manual explaining the specific syntax and structure of the language. a User’s Guide explaining ho wto do certain tasks. Data area declarations SC26-4940 .Assembler Introduction . some of those relevant to z/OS are listed opposite. The most common macro manuals are: SC26-7408 DFSMS Macro Instructions for Data Sets.High Level Assembler Language Reference Macro instructions There may be a variety of manuals depending upon the type of macro required.High Level Assembler Language Reference Machine code mnemonics z/Architecture Principles of Operation manual (SA22-7832) describes the actual instructions and how they work.
(See Principles of Operation SA22-7832) Data Definitions.Legac-e Education Source Code • Mnemonic Machine Instructions. (See DFSMS Macro Instructions for Data Sets. (As per Data Definitions above. (See High Level Assembler Language Reference SC26-4940) AP CLC LM • DC GET DS DC B • Macros.) E OP N • START RG TO L END 11 Copyright © Legac-e Education.Assembler Introduction Page 3 . 2005 Module 1 . 2004. C L OS SC26-7408) E Instructions to the Assembler.
Vol. 1 (SA22-7606) z/OS MVS Programming: Assembler Services Reference. it is useful to note that nearly all manuals are in Adobe Acrobat (. Product licensing normally provides for one hard-copy.Legac-e Education Additional documentation These manuals may also be useful.Assembler Introduction . Page 4 Module 1 . two manuals will prove useful: z/OS MVS Programming: Assembler Services Reference. 2 (SA22-7607) If running on non-z/architecture and/or OS/390: ESA/390 Principles of Operation (SA22-7201) if running a machine other than a z/8nn or z/9nn. The foil opposite indicates the link process to find the manual library on the WEB. If the documentation cannot be found or additional copies are required.PDF) format and are obtainable from the IBM WEB site. LINK. STORAGE etc. and a soft-copy CD. Vol. OS/390 DSFSMS/MVS Macro Instructions for Data Sets (SC26-7337) OS/390 MVS Programming: Assembler Services Reference (GC28-1910) Documentation location It is reasonable to assume that each installation would have its own copy of the relevant documentation. For supervisor service macros such as CALL.
2004. 2005 13 Module 1 .ibm.com • Products & Services • Servers .Enterprise • Library • Select system environment Copyright © Legac-e Education.Legac-e Education Documentation location • www.Assembler Introduction Page 5 .
e.Legac-e Education Source code syntax The rules governing assembler source code date from the 1960s when source code was input via punched cards. Operation This will be separated from the label field and operands field by blanks. but cannot start with a number. In some ways the rules are similar to those which applied to JCL at that time.Assembler Introduction . If a label is not required the label area must be blank. and can be up to 8 characters long. The operation will be one of: A machine code mnemonic An instruction to the assembler A macro instruction name Convention has it that the operation field will start in column 10. Statements comprise 5 areas. • • • • Label Operation Operands Comments Label The label field if required begins in column 1. Essentially each source statement is an 80-byte record. i. Page 6 Module 1 . Labels can be composed of alphanumeric characters or national symbols. especially with regard to catalogue procedures. with columns 73-80 reserved for sequence numbers.
if coded it must begin in column 1. A name cannot exceed 8 characters. Label is optional.12(13) SAVE REGISTERS Operation is mandatory and has a blank either side of it.12.Legac-e Education Source code syntax 80 Characters or bytes in length MYPGM CSECT STM 14. 2004. Name can consist of Alphanumeric & National characters. Copyright © Legac-e Education. 2005 14 Module 1 .Assembler Introduction Page 7 . If omitted column 1 must be blank.
Continuation There will be occasions. and starting the remaining operands in column 16. Operands will be separated by commas. Comments To aid understanding of the code.Legac-e Education Operands The number and type of operands will vary according to the operation. particularly from a maintenance perspective it is recommended that comments are liberally applied throughout the assembler source. Machine code mnemonics may have up to three operands. and the first blank in the operands field will be treated as the end of the operands. Page 8 Module 1 . Statements can be continued by coding a non-blank character in column 72. There may be installation standards pertinent to comments. invoking macros for instance.Assembler Introduction . when all the operands may not fit within the 71 bytes available. Macro instructions may have many operands depending upon the complexity of the macro function. Where possible convention dictates that operands start in column 16. if not a comment can start in any column but are often found from either column 35 or 40 onwards.
2005 15 Module 1 . Copyright © Legac-e Education.Assembler Introduction Page 9 .DDNAME=SYSIN. Rest of operands start in column 16 on next statement.EODAD=QUIT Non-blank character in column 72.MACRF=GM. * LRECL=80.Legac-e Education Continuation 80 Characters or bytes in length SYSIN DCB DSORG=PS. 2004.
The three steps represented by the middle column of the diagram are: • • • Assembly (or compile) Program Bind (sometimes known as Link-Edit) Execution (or GO stage) Each of these steps is described in more detail on the following pages. Page 10 Module 1 .Assembler Introduction .Legac-e Education Assembly process Overview The diagram opposite illustrates the process of compiling (or assembling) source code into an executable program.
2005 (SYSLIB) Sub-routines 6 Module 1 .Assembler Introduction Page 11 . 2004.Legac-e Education Assembly Process (SYSIN) Souce Code Assembly (PGM= ASMA90) (SYSPRINT) Assembly Listing (SYSPRINT) Binder Listing Program Binder (PGM=HEWL) (SYSLIN) Object Code (SYSLMOD) Load Module Go via Program Fetch Copyright © Legac-e Education.
Inputs to the assembly step will be: SYSIN SYSLIB . STEP WAS EXECUTED COND CODE 0000.e.Assembler Introduction .Object module to be input to the program binder Ideally a condition code of zero. i. it does not produce executable code. . The DD statement definitions can be checked in "z/OS Sample Assembly Procedure" later in this module. although CICS programs may require a preprocessor step ahead of this. Page 12 Module 1 .primary input. Any condition code greater than 4 must be investigated.Legac-e Education Assembly .Listing of the assembled source .Step 1 This is usually the first step. The aim of this step is to convert the input source code to machine code format. which contains the z/OS 1. the location of the source code to be compiled. it may simply be warnings from embedded macros. will be issued by this step. Outputs from the assembly step will be: SYSPRINT SYSLIN . A condition code of 4 may not be serious.Macro or copy book libraries required by the assembly. While this step produces machine code.3 assembly procedure as supplied by IBM.
2005 7 Cond Code 8> Cond Code 0 47F0F05808E6E2C8D6D7 F14040000000000000000 000000000000000000000 Module 1 . 2004. Macro Expansions & XREF • Object code: – ESD – Machine Code – Data Constants. Copyright © Legac-e Education.Assembler Introduction Page 13 .Legac-e Education Assembly Results Input + • A listing with diagnostics. • This is not executable.
which contains the z/OS 1. calls or links to other modules. The entry point of the program will also be established by this process.Own library explicitly mentioned on an INCLUDE statement Outputs from the program binder step will be: SYSLMOD SYSPRINT SYSUT1 .Assembler Introduction . Page 14 Module 1 . The function of this step is to produce an executable routine. The DD statement definitions can be checked in "z/OS Sample Assembly Procedure" later in this module. will be issued by this step. i.e. which may form part of a larger program. Inputs to the program binder step will be: SYSLIN SYSLIB Anyname . STEP WAS EXECUTED COND CODE 0000.Legac-e Education Program Bind .Work area Ideally a condition code of zero.6 assembly procedure as supplied by IBM. This process includes the resolution of any external references. the location of the source code to be compiled . i. Any condition code greater than 4 must be investigated.e.Step 2 Program Bind is the modern term for what was historically known as the LinkEdit step.Libraries searched for implicit includes (unless PARM=NCAL) .Listing of the bound program plus input control statements .Library to contain executable program .Primary input.
• This should be executable code. Copyright © Legac-e Education. Input Statements Module Map & XREF Cond Code 0 47F0F05808E6E2C8D6D7 F14040000000000000000 000000000000000000000 8 Cond Code 8> • Executable module or program stored in a library.Legac-e Education The Link or Bind Results • A listing with diagnostics. 2004. 2005 Module 1 .Assembler Introduction Page 15 .
or a user-written supervisor call (SVC) it will need to reside an appropriate system area.PARMLIB.LINKLIB).e. Normal application batch modules or programs are likely to reside in a private load library. Page 16 Module 1 . such as the Link Pack Area (LPA). or STEPLIB DD statements in the job or job step. If the module or program has a special function.PARMLIB defines the libraries. which constitute the LPA concatenation. These DD statements are not required however if the private libraries are added to member LNKLSTnn in SYS1. and will usually be invoked via a JCL EXEC statement. i. Where the module (program) is stored and how it is invoked will be dependent upon its usage. Member IEALPAnn of SYS1. To be LPA eligible modules require special attributes such as being reentrant. IEBPTPCH. Utility programs. Such programs cannot modify themselves and if they need to store or amend data. and stored somewhere on the system. that data has to be outside of the module itself.Assembler Introduction .LINKLIB. such IEBGENER. (This member constructs the logical concatenation to SYS1. it may be an exit to a system product. Application programs are often located at run time by including JOBLIB.Step 3 This is the resultant module or program produced by the Program Binder. or RENT in Program Binder terms.Legac-e Education Executable code . and IEFBR14 typically reside in the default system load library called SYS1.
or the LNKLST.BATCH. 2004.Legac-e Education Executable Code • Typically stored in system load library like: – SYS1.LOADLIB – member LNKLST00 in SYS1.PARMLIB Copyright © Legac-e Education.PARMLIB • In some circumstances it will be LPA eligible.Assembler Introduction Page 17 .LOADLIB • Accessible either through JOBLIB / STEPLIB.LINKLIB • Or a private library like: – PROD.BATCH. – //JOBLIB DD DSN=PROD. – member IEALPAxx in SYS1. 2005 9 Module 1 .
31-bit addressing On 31-bit hardware the registers are four bytes (32 bits) in size. Register sizes On the original systems prior to MVS/XA 24-bit addressing was all that was available. In this mode all four bytes of the register are used to contain a valid address. Page 18 Module 1 . and all programs executing on that processor will use them. 24-bit addressing On 24-bit hardware the registers are four bytes (32 bits) in size. hence 31 rather than 32-bit addressing. only the low order four bytes of the register are used if the module or program is compiled with AMODE(24) or AMODE(31). In 64-bit mode all eight bytes of the register are used to hold a valid address.Legac-e Education General Purpose Registers There are sixteen general purpose registers available to each processor. 64-bit addressing On 64-bit hardware the registers are eight bytes (64 bits) in size.Assembler Introduction . MVS/XA introduced 31-bit addressing. and the current z/Architecture and its z/OS operating system offer the capability to have 64-bit addressing. of the register are used to contain a valid address. In order to maintain compatibility with the older systems. In this mode only 24-bit. the low order three bytes. but the high order bit is reserved.
Assembler Introduction Page 19 .Legac-e Education General Purpose Registers 24-bit addressing compatibility 31-bit addressing 64-bit addressing Copyright © Legac-e Education. 2005 27 Module 1 . 2004.
Note that some instructions.contains the address of the register save area .Legac-e Education Register conventions Within the assembler programming arena a convention has been established for register usage.contains the return address from a called sub-routine .) Page 20 Module 1 . such as TRT. This convention is almost universal. Note also that the use of register zero may be restricted by some instructions and result in a no-operation condition.Assembler Introduction . can corrupt registers. although some IBM system routines do not use register 12 as their base register. (This is not a failure as the program will continue to run.used for passing a parameter list .used for passing a single parameter . although not following the convention will invite trouble if either implicit or explicit calls to other routines are made.contains the entry address of a called sub-routine Irrespective of the above convention any register can be used for any purpose. The convention is: R0 R1 R13 R14 R15 .
0 1 Pass single parameter Addr of Parameter List 8 9 10 11 12 13 14 15 Base Register Address of Save Area Return Address Entry Address 28 2 Can be corrupted by TRT 3 4 5 6 7 Copyright © Legac-e Education.Assembler Introduction Page 21 . 2004. 2005 Module 1 .Legac-e Education Register Conventions.
Legac-e Education Relocatable Addressability If programs were not relocatable they would always occupy the same area of storage. or increase the maintenance overhead when programs and operating systems changed. Relocatability allows a module or program to be loaded into different storage locations at different times. and may also be used as a technique to access areas of storage beyond the addressing boundaries of the module. Managing such an environment would either significantly restrict the number of concurrent program executions. will definitely apply to the module itself. yet function as intended. but this is not the case in Assembler. Page 22 Module 1 .Assembler Introduction . described in more detail in a moment. In high level languages such as COBOL and PL/I this relocatable concept is transparent to the programmer. Relocatability requires that each storage address used within a program be broken into two components: • • Base register Displacement This combination.
such as arrays.Legac-e Education How is relocatability achieved? • A base register is established. may require separate base registers for ease of data manipulation.Assembler Introduction Page 23 . • There will be at least 1 base register for the program depending upon its size. Copyright © Legac-e Education. 2004. • In high level languages this is dealt with by the compiler. 2005 18 Module 1 . • Additionally specific areas of memory.
The base register will be identified by a value in the range 0 to 9 or A to F.Assembler Introduction . This is discussed in the next topic. In simple terms. Remember that the base register points to the first byte and hence the first byte is at offset zero. with the instructions and data areas within the program being referenced via displacements relative to the address in the base register. as there are only sixteen General Purpose Registers available. or hexadecimal FFF. Displacement The displacement is the relative offset to be added to the address in the base register to locate the particular area of storage. Page 24 Module 1 .Legac-e Education Addressability components As mentioned earlier relocatability requires that each storage address used within a program be broken into two components: • • Base register Displacement Base register This is the anchor for relative addressing and logically this register contains the address of the first byte of storage used for subsequent relative addressing. for a program the base register points to a location toward the start of the program. The maximum offset value is 4095.
A number in the range 0 4095 (cannot be greater than X’FFF’). 19 Copyright © Legac-e Education. which represents the base register. which is the offset from the base. 2004.F.Legac-e Education Addressability Components All instructions which access memory (storage) will have one or more components in the form: BDDD A single character in the range 0 .9 or A .Assembler Introduction Page 25 . 2005 Module 1 .
minus 1. is the length. D2.Legac-e Education An internal representation The foil opposite illustrates how a particular MoVe Character (MVC) instruction has been assembled. 07. The next two bytes hold the address of the target field in BDDD format. The second byte. Page 26 Module 1 . The first byte. The last two bytes hold the address of the source field in BDDD format.Assembler Introduction . is the machine operation code for the MVC instruction. of the field to be moved.
X‘A30’ beyond the address in Register 12. Register 12. X‘420’ beyond the address in Register 12.Legac-e Education An internal representation This represents a MoVe Character (MVC) instruction as it might appear after assembly. First operand’s displacement. Copyright © Legac-e Education.Assembler Introduction Page 27 . Register 12. 20 First operand’s base register. D2 07 C A30 C 420 Second operand’s displacement. 2004. 2005 Module 1 . Second operand’s base register.
The BASR instruction is usually used to establish the base for a program or module. Page 28 Module 1 .Legac-e Education Establishing addressability Establishing addressability requires two actions. Run time At run time the system needs to know where in storage the code or data area resides.Assembler Introduction . which are relevant at two separate times: • • Assembly time Run time Assembly time At assembly time it is necessary to inform the assembler which register is to be used as the base register. The assembler also needs to know what the initial displacement is. These two requirements are resolved with the USING statement.
1 The programmer must select a GPR to act as the base register for addressability. Copyright © Legac-e Education. 2005 21 Module 1 . Convention is to use GPR 12.Assembler Introduction Page 29 .B Puts address of next instruction into GPR 12.0 USING *. START 0 BASR 12.12 MVC IN(8). Tells the assembler to use 12 as the base register. 2004.Legac-e Education Program addressability . 000000 UTILPGM 000000 000002 000002 Sets IC to zero.
The big limitation of course is the maximum displacement of X'FFF'.Assembler Introduction . which might imply that a program could not be larger than 4096 bytes in size. Page 30 Module 1 .Legac-e Education Practical example The diagram opposite illustrates how the system calculates storage addresses by using the combination of base register and displacement.
0 D207CA30C420 MVC PTIME. X‘C30’ X‘620’ PTIME DC CL8‘ ’ F1F27AF0F87AF0F0 4040404040404040 22 Copyright © Legac-e Education.Legac-e Education Program addressability .MTIME Base + Offset MTIME DC CL8‘ ’ 00000200 R12 is Base Register. 2005 Module 1 .Assembler Introduction Page 31 .2 BASR 12. 2004.
Assembler Introduction .Legac-e Education Multiple base registers To cater for large modules or programs. Opposite is a piece of code demonstrating how multiple base registers can be set up. In this instance 3 base registers are being established which allows the program to be 12K in size. especially those which cannot be sub-divided into discrete modules. (4096 times 3). Page 32 Module 1 . multiple base registers can be used.
either code it in multiple CSECTs.11 10.0 *.B 14 CL10‘ ’ CL5‘TERRY’ 23 BASE BASES MAIN IN B Copyright © Legac-e Education. 2005 Module 1 .Assembler Introduction Page 33 .12.10.11. 2004. or use more than 1 base register.Legac-e Education Multiple base registers If the program is likely to be greater than 4096 bytes in size.BASES MAIN A(BASE+4096) A(BASE+8192) IN(8). 000000 000000 000002 000006 00000A 00000E 000012 000018 00001A 000024 58ABC008 47F0C010 00001002 00002002 D207C018C022 07FE 40404040 E3C5D9D9 UTILPGM START BASR USING LM B DC DC MVC BR DC DC END 0 12.
The 'Principles of Operation' manual usually has diagrams of this type as part of the definition of each instruction. Page 34 Module 1 .Assembler Introduction .Legac-e Education Instruction Notation The illustration opposite is included as an indication of how other documentation might discuss or present instruction formats. This is not however indicative of how instruction would necessarily be coded.
2005 Module 1 .Assembler Introduction Page 35 .Legac-e Education Instruction notation MVC d1(L1. 2004.d2(b2) OP L b1 d1 b2 d2 (SS) Operation for MVC this is D2 Length Base Register first operand Base Register second operand Displacement of second operand 24 Displacement of first operand Copyright © Legac-e Education.b1).
At the top of the illustration is the sample machine code for the MVC instruction used in earlier examples. Page 36 Module 1 . it is easier to assign labels to those storage areas.1056(12) If however the two storage areas used by the instruction reside within the current module. and use the labels in the instruction thus: MVC PTIME.MTIME The later is arguably more readable than the former. If the two storage areas used by the instruction are outside of the current module. then it might be necessary to code the MVC instruction in the form: MVC 2608(8. and hence more easily understood.Legac-e Education Potential source formats This illustration offers two examples of how instructions might be coded.12).Assembler Introduction .
in non-relocatable source form.1056(12) The same instruction. 2005 25 Module 1 . MVC 2608(8. 2004.12).MTIME The same instruction. Copyright © Legac-e Education. MVC PTIME.Assembler Introduction Page 37 .Legac-e Education Potential source formats D207CA30C420 Our previous MoVe Character (MVC) Instruction. in relocatable source form.
40).PARM='MAP..(120.SPACE=(3040.ROUND).PASS).(40.DCB=BUFNO=1 SYSOUT=* ASMACL PROC Page 38 Module 1 .1)).(1.UNIT=SYSDA. UNIT=VIO.6 Sample Assembly Procedure 000010 //ASMACL 000020 //* 000030 //*** 000040 //* 000050 //* THIS PROCEDURE RUNS THE HIGH LEVEL ASSEMBLER. UNIT=VIO.DELETE) DDNAME=SYSIN DISP=(.Legac-e Education z/OS 1. DCB=(BLKSIZE=3040. 000060 //* LINK-EDITS THE NEWLY ASSEMBLED PROGRAM.NCAL'.(120.DISP=SHR DSN=&&SYSUT1.BUFNO=1) EXEC PGM=HEWL.LIST.DCB=BUFNO=1 SYSOUT=* DSN=&&OBJ. UNIT=VIO.MACLIB.1.C) DSN=&&OBJ. 000070 //* 000080 //C 000090 //SYSLIB 000100 //SYSUT1 000110 // 000120 //SYSPRINT DD 000130 //SYSLIN 000140 // 000150 // 000160 //L 000165 // 000170 //SYSLIN 000180 // 000190 //SYSLMOD 000200 // 000210 //SYSUT1 000220 // 000230 //SYSPRINT DD DD DD DD DD DD EXEC PGM=ASMA90 DD DD DSN=SYS1.LET...SPACE=(4096.RECFM=FBS.120)..ROUND).LRECL=80.ROUND).SPACE=(1024.120)..LT.PASS).DISP=(OLD.DISP=(MOD.Assembler Introduction ..SPACE=(CYL. DSN=&&GOSET(GO) DSN=&&SYSUT1. COND=(8.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.