0% found this document useful (0 votes)
140 views27 pages

HLASM R3 New Functions and Features

The document describes new features and functions in High Level Assembler Release 3. Key updates include: - Support for ESA/390 binary floating point extensions, including new instructions, data types, and DC statement syntax. - Enhancements to options like INFO, RXREF, and FLAG to provide additional information, cross-referencing, and warnings. - Improvements to listing output, diagnostics, and messages to indicate errors, warnings, and product information more clearly. - Additional support for floating point values, registers, and new data conversion routines. So in summary, High Level Assembler Release 3 provides expanded support for ESA/390 floating point standards as well as enhance

Uploaded by

gborja8881331
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
140 views27 pages

HLASM R3 New Functions and Features

The document describes new features and functions in High Level Assembler Release 3. Key updates include: - Support for ESA/390 binary floating point extensions, including new instructions, data types, and DC statement syntax. - Enhancements to options like INFO, RXREF, and FLAG to provide additional information, cross-referencing, and warnings. - Improvements to listing output, diagnostics, and messages to indicate errors, warnings, and product information more clearly. - Additional support for floating point values, registers, and new data conversion routines. So in summary, High Level Assembler Release 3 provides expanded support for ESA/390 floating point standards as well as enhance

Uploaded by

gborja8881331
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

High Level Assembler Release 3:

New Features and Functions

SHARE 94 (Winter 2000), Session 8164

John R. Ehrman
[email protected] or [email protected]

IBM Santa Teresa Laboratory


555 Bailey Avenue
San Jose, CA 95141
1-408-463-3543

 IBM Corporation 1995, 2000

March, 2000
Table of Contents Contents-1

New Features in HLASM R3: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


Summary of Support for ESA/390 Binary Floating Point . . . . . . . . . . . . . . . . . . . . 2
DC Statement Extensions for Floating Point Data . . . . . . . . . . . . . . . . . . . . . . . . 3
New and Enhanced Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
New and Enhanced Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Listing Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
New and Enhanced Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Other Enhancements: MHELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Other Enhancements: System Variable Symbols . . . . . . . . . . . . . . . . . . . . . . . . . 20
Other Enhancements (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Other Enhancements (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Toolkit Feature Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
High Level Assembler Release 3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

High Level Assembler Release 3  IBM Corporation 2000


New Features in HLASM R3: Overview 1

 Support for ESA/390 Floating Point Extensions


– IEEE Binary Floating Point (BFP), enhanced Hexadecimal Floating
Point (HFP)
– New instructions and data types

 New and enhanced statements


 New and extended options
 Listing enhancements
 New and enhanced diagnostics and messages
 Other assembler enhancements
 Toolkit Feature enhancements

Web site: http://www.ibm.com/software/ad/hlasm/

High Level Assembler Release 3  IBM Corporation 2000


Summary of Support for ESA/390 Binary Floating Point 2

 Hardware enhancements include


– 121 new instructions

– Additional floating point registers (AFPR) for HFP and BFP

– BFP data types: short, long, extended


— Same storage and register lengths as HFP

 HLASM R3 supports all new instructions and registers


– Extended DC syntax for new forms of constants

– ACONTROL statement controls checking for old (4) or new (16) FP


register set
— Details on slide 8

High Level Assembler Release 3  IBM Corporation 2000


DC Statement Extensions for Floating Point Data 3

 General form:
DC <type><subtype><modifiers>'nominal_value <rounding>'

 Type is E, D, or L (as before)


 Subtype indicates desired format and conversion:
(null) HFP format, old conversion routines (traditional syntax)
H HFP format, with rounding and new conversion routines
B BFP format conversion and new conversion routines
 Examples:
DC EB'.1' short binary .1
DC EH'.1' short hex .1
DC E'.1' short hex .1, old conversion routine

DC DB'.1' long binary .1


DC DH'.1' long hex .1
DC D'.1' long hex .1, old conversion routine

High Level Assembler Release 3  IBM Corporation 2000


DC Statement Extensions for Floating Point Data ... 4

 Rounding indicator for H and B subtypes: R followed by a decimal digit


R1 biased round to nearest (the traditional method)
R4 unbiased round to nearest (default)
R5 round toward zero
R6 round toward +∞
R7 round toward −∞
– Indicator numerics match hardware-instruction round-mask field
– Examples:
DC DH'.1 R1' equivalent to old D'.1', biased rounding
DC DB'.1 R7' long binary .1, rounded toward ─infinity
DC DH'.1 R4' long hex .1, unbiased round to nearest

 Modifiers: Some restrictions for BFP data and special values

Length Scale Exponent


HFP old Bit lengths at least 1 Unnormalizes fraction −85 to +75
HFP new Bit lengths at least 12 Unnormalizes fraction −85 to +75
BFP No truncation into exponent Not allowed Any

High Level Assembler Release 3  IBM Corporation 2000


DC Statement Extensions for Floating Point Data ... 5

 Symbolic forms needed for IEEE special values


– BFP exponent width varies with data type
 Symbolic nominal values for BFP normalized Max, Min values
8 DC EB'(Min)' smallest normalized short constant
1 DC DB'(Min)' smallest normalized long constant
7FFEFFFFFFFFFFFF DC LB'(Max)' largest normalized extended constant
7FEFFFFFFFFFFFFF DC DB'1E999999 R5' rounds down to MaxReal (!)
44 ASMA194W Nominal value too large ─ overflow to MAX
– HFP exponent width is always 7 bits
 Symbolic forms for IEEE special values (NaN, Infinity):
7FA DC EB'(SNaN)' short signaling NaN
FFF DC DB'─(Inf)' long ─infinity
7FFC DC DB'(QNaN)' long quiet NaN
7FF DC DB'1E999999 R4' rounds up to +infinity
44 ASMA195W Nominal value too large ─ overflow to INF

 Symbolic forms for all HFP data lengths: (Max), (Min)


81 DC EH'─(Min)'
FFFFFFFF DC EH'─(Max)'
7FFFFFFFFFFFFFFF DC DH'(Max)'

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Options 6

 New: INFO
– HLASM prints its service status, other useful information
– Example of the printed text:
The following information describes enhancements and changes to the
High Level Assembler Product.

The information displayed can be managed by using the following options:


INFO ─ prints all available information for this release.
INFO(yyyymmdd) ─ suppresses items dated prior to "yyyymmdd".
NOINFO ─ suppresses the product information entirely.

1998114 APAR PQ2128 Fixed


Some machine opcodes incorrectly no longer accept literal operands.

1999113 APAR PQ224 Fixed


The message ASMA138W is being issued at the end of a compile when a
PUSH/POP stack is not empty. The option FLAG(NOPUSH) is provided to
allow this message to be disabled.

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Options ... 7

 New: RXREF
– Requests a general register cross-reference (see slide 11)
 New: GOFF
– Synonym for XOBJECT
— GOFF/XOBJECT options now control only object file format, not destination
— DECK means SYSPUNCH, OBJECT means SYSLIN

 New: Three FLAG sub-options:


– FLAG(PAGE0) warns of implicit addresses resolved with base register zero
(see slide 14)
– FLAG(IMPLEN) warns of implicit length use in SS-type instructions (see slide
15)
– FLAG(PUSH) warns of non-empty PUSH stack (see slide 16)
 New: COMPAT(LITTYPE) sub-option
– HLASM returns type 'U' for literal macro operands

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Statements 8

 New: ACONTROL operands allow changing selected options


dynamically:
– COMPAT, FLAG (except REC), LIBMAC, RA2, RENT, AFPR
— AFPR controls assembler's recognition of Additional Floating Point
Registers
ACONTROL AFPR Allow Additional Floating Point Registers
LE 1,=E'6.7' Float Register 1
ACONTROL NOAFPR No AFPRs allowed
LE 1,=E'6.7' Float Register 1
44 ASMA29E Incorrect register specification

L ,X X is not on a fullword boundary


44 ASMA33I Storage alignment for X unfavorable
ACONTROL FLAG(NOALIGN)
L ,X X is still not on a fullword boundary

 New: AINSERT statement allows conditional-assembly generation


of records to be buffered for subsequent primary-file input
– Examples in Sessions 8167-8168

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Statements ... 9

 Enhanced: USING statement can specify resolution-range limit


USING (base,end),registerlist

– Lets you control or eliminate USING-range overlap messages


X Equ 4+1
Y Equ 4+12

Using X,12
Using Y,11 Range overlaps by 296 bytes
44 ASMA33W Multiple address resolutions may result from
this USING and the USING on statement number 6

Drop 12,11

Using (X,Y),12 Specify Y as end of range for R12


Using Y,11 Range does not overlap

– Details in Session 8165

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Statements ... 10

 Enhanced: DC statement nominal values may contain blanks


where sensible:
– Quote-delimited constants (types B, X, H, F, P, Z, D, E, L)
DC F'123 456'
DC X'AB CD EF'
DC E'3.141 592 65'
DC B'11 111 1'

– Blanks are still significant in C-type and G-type constants!

– Blanks not allowed in self-defining terms

 Enhanced: DC statements with zero duplication factor require no


nominal value
DC D,X'4F  8 '

High Level Assembler Release 3  IBM Corporation 2000


Listing Enhancements 11

 General register cross-reference (RXREF)


– Actual register use; does not depend on symbolic register naming!
Register References (M=modified, B=branch, U=USING, D=DROP, N=index)

() 116 163M 164 179M 18 181 185M 186M 186 19 ...
374M 388M 389M 389 45M 456M 473M 474M 475 477M ...
52M 52 521 528M 548M 549 561M 568M ...
1(1) 116 123U 128D 132M 133M 133 135 138 166M 168 ...
295M 348M 349U 373M 377D 422M 425 449M 453 455M ...
59M 594M 598M 62M 66M 61M 614M 623M 624M 626 ...
2(2) 116 171M 174M 197M 198M 199 295M 357M 358M 359 ...
419M 42 421M 422N 528M 568M 625M 625 626M 627 ...

... etc.

1(A) 116 124M 195 295M 339U 411U 528M 531D 568M ...
11(B) 116 124M 127U 295M 528M 568M 648D ...
12(C) 116 117M 119U 295M 528M 568M 649D ...
13(D) 116 178 18 181M 293M 295 39 311 312M 524M ...
14(E) 116 295M 296B 399M 49M 498B 528M 529B 568M 569B ...
15(F) 19U 111 116 117 118D 189M 19 295M 528M 568M ...

 Also captures implicit references:


LM 3,5,X implicitly references (and modifies) GR 4

High Level Assembler Release 3  IBM Corporation 2000


Listing Enhancements ... 12

 Symbol cross-reference in readable columnar format


– Uses full line width; comma separators dropped

Symbol Len Value Id R Type Defn References

R 1  1 A U 52 163M 164 179M 18 181 185M ...


31M 311 312 347M 374M 388M ...
475 477M 478M 478 485 494M ...
521 548M 549 561M ...
R1 1 1 1 A U 53 123U 128D 132M 133M 133 135 ...
215D 248M 262 348M 349U 373M ...
46 56M 574M 578M 582M 586M ...
614M 623M 624M 626 633 645 ...
R1 1 A 1 A U 6 195 339U 411U 531D ...
R11 1 B 1 A U 61 124M 127U 648D ...
R12 1 C 1 A U 62 117M 119U 649D ...
R13 1 D 1 A U 63 178 18 181M 293M 39 311 ...
R14 1 E 1 A U 64 399M 49M 498B ...
R15 1 F 1 A U 65 19U 117 118D 189M 19 ...
R2 1 2 1 A U 54 171M 174M 197M 198M 199 357M ...
369M 37 414M 415 419M 42 ...
628 633M 634 636M 639 64M ...
... etc.

High Level Assembler Release 3  IBM Corporation 2000


Listing Enhancements ... 13

 “Column-0” indicator tags expanded and clarified:

– '=' for COPYed records (replacing HLASM R2's 'C')

– '>' for AINSERTed records

– Retain '+' for generated, '−' for AREAD statements

 USING-statement PUSH-level status shown in USING subheading

Active Usings (1): ...etc...

“(1)” indicates USING Push depth = 1

 More information provided in addr1 and addr2 fields

 Variable record format supported for listing files on MVS, CMS

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Diagnostics 14

 Added severity-letter suffix to all messages, dropped redundant


' WARNING ' and ' ERROR ' prefixes
– Can search on ' ASMA' for all assembler messages
 Improved and more informative “addressability error” messages
specify the erroneous operand
1. Address is complexly relocatable (message corrected by APAR
PQ30928)
XX LA 1,XX+XX
44 ASMA78E Operand 2 expression complexly relocatable ─ XX+XX

2. No USING for operand xxx


BC 15,B1
44 ASMA37E No active USING for operand B1

3. Address is beyond USING range by b bytes


LA ,4+5
44 ASMA34E Operand 4+5 beyond active USING range by 922 bytes

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Diagnostics ... 15

 Page 0 reference: FLAG(PAGE0) option flags “baseless”


resolutions
4! BR R14 was intended...
B R14 Branch to location 14
44 ASMA39W Operand R14 resolved to a displacement with no base register

4! MVC A,=C'A' was intended...


MVC A,C'A' Move bytes to A, starting at location 193
44 ASMA39W Operand C'A' resolved to a displacement with no base register

4! LA ,8 was intended


LH ,8 (For a while, the 2 bytes at location 8 contained 8!)
44 ASMA39W Operand 8 resolved to a displacement with no base register

 Implicit length: FLAG(IMPLEN) option flags use of implied length in


SS-type instructions
MVC A,=C'Message'
44 ASMA169I Implicit length of symbol A used for operand 1
A DS CL99

 Violations of literal bounds


IC ,=X',1,2'+7
44 ASMA15W Literal bounds exceeded

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Diagnostics ... 16

 Literals as targets of branch or EXecute instructions


BAL 1,=X'7F1'
44 ASMA3E Invalid literal usage ─ =X'7F1'

4! BAL 14,ErrorRtn was intended


BAL 14,=A(ErrorRtn) was written
44 ASMA3E Invalid literal usage ─ =A(ErrorRtn)

 Use of default length attribute for equated symbols


A Equ 4
LA 1,L'A
44 ASMA19W Length of EQUated symbol A undefined; default=1

 Non-empty PUSH stack detected at end of assembly


– Non-empty PUSH-USING stack may be serious; PUSH-PRINT isn't
– APAR PQ22044 adds FLAG(PUSH|NOPUSH) option to control it
 Repeated register in USING causes statement to be ignored
USING 4,1,11,1
44 ASMA38E Repeated register 1

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Diagnostics ... 17

 USING with absolute base address overlaps


assembler's implicit USING #,#
USING 12,12
44 ASMA36W USING range overlaps implicit USING ,

– Helps catch accidental use of absolute base address

 Validation of USING range's end operand


AA CSect
Using (4,4─1),9
44 ASMA313E The end value specified in the USING is
less than or equal to the base value

Using (4,XX),8
44 ASMA314E The base and end values have differing relocation attributes
XX DSect

 USING warnings apply to all detected conditions, not just first

High Level Assembler Release 3  IBM Corporation 2000


New and Enhanced Diagnostics ... 18

 Indicate that statement processing is incomplete

DC F'123''',A(12??34),N'what'
44 ASMA74E Illegal syntax in expression ─ 123''',A(12??34),N'what'
44 ASMA14W Statement processing incomplete

 Alignment unfavorable message

ST 1,2
44 ASMA33I Storage alignment for 2 unfavorable

 START operand rounded up

44 ASMA22I START value rounded up to required boundary

High Level Assembler Release 3  IBM Corporation 2000


Other Enhancements: MHELP 19

 Improved identification of system, positional, and keyword variables


in macro errors and MHELP output
++//MHELP CALL TO MACRO GENHELP DEPTH=1 SYSNDX=1 STMT=6

//MHELP ENTRY TO GENHELP MODEL STMT= DEPTH=1 SYSNDX=1 KWCNT=2


////SYSTEM PARAMETERS: <─── System Variable Symbols
//SYSVAR NAME LNTH VALUE (56 CHARS/LINE)
//SYSNDX 4 1
//SYSECT NUL
//SYSLOC NUL
//SYSTIME 5 17.14
... etc
//SYSVER 5 1.3.
//SYSDATC 8 1999127
... etc
////NAME; KEYWORD PARAMETERS; POSITIONAL PARAMETERS:
//PARAMETER LNTH VALUE (54 CHARS/LINE)
//NAME 2 GO <─── Name field entry
//KPARM1 2 NO <─── Keyword parameters
//KPARM2 5 MAYBE
//PPARM1 3 ABC <─── Positional parameters
//PPARM2 3 DEF

//MHELP EXIT FROM GENHELP MODEL STMT=4 DEPTH=1 SYSNDX=1 KWCNT=2

High Level Assembler Release 3  IBM Corporation 2000


Other Enhancements: System Variable Symbols 20

 New system variable symbols:

&SYSCLOCK Local system date and time

&SYSOPT_XOBJECT
1 means Generalized Object File Format

&SYSMAC Name of current macro and each of its callers


&SYSMAC: name of current macro
&SYSMAC(n): name of n-th caller of current macro
&SYSMAC(&SYSNEST) returns 'OPEN CODE'

&SYSM_SEV MNOTE severity code from most recent macro call

&SYSM_HSEV Highest MNOTE severity code in the assembly so


far

High Level Assembler Release 3  IBM Corporation 2000


Other Enhancements (1) 21

 Internal conditional assembly functions: BYTE and SIGNED


– Fixes two long-standing inconveniences in the conditional assembly
language

&A SetA ─55 Value of &A is ─55


&OldWay SetC '&A' Value of &OldWay is '55'

&Signed SetC (Signed &A) Value of &Signed is '─55'

&Null SetC (Byte X'') Value of &Null: a “null” byte

 External functions: Flag for “cleanup” call; interface for function


messages and severity codes; summary statistics

 Single set of product publications: VSE info merged with MVS/VM


– Lower publications costs

High Level Assembler Release 3  IBM Corporation 2000


Other Enhancements (2) 22

 I/O Exits
– End-of-member indicator; shared user-exit field; disable-exit request
– New “Assembler Information” block gives VRM, PTF level, system info
— APAR PQ28852 (PTFs: UQ32700 MVS; UQ32701 VSE; US32703 CMS)
– Example of an exit in Session 8165
 SYSADATA records
– Expanded header field includes length of data portion of the record
— Facilitates downloading and analysis of ADATA files on workstations
– New records for register XREF; new fields for PRINT flags; additional
option data; exit and function statistics
 DXD items aligned to strictest required boundary
(not just that of the first operand)
 J-type constant generalizes CXD: length of selected items
 Q-type adcons provide offsets within class of parts or labels
– Details in Session 8170

High Level Assembler Release 3  IBM Corporation 2000


Toolkit Feature Enhancements 23

 Support for all new instructions in


– Disassembler
– Interactive Debug Facility
– Program Understanding Tool
 PDSE support in
– Disassembler
– Interactive Debug Facility
 Disassembler supports CMS modules
 Program Understanding Tool (ASMPUT) supports Windows 95, 98,
and NT 4.0 (APARs PQ22470 and PQ26063)
 Common opcode disassembly tables for disassembler, IDF, and
other system components
 Enhanced SuperC support for VSAM files on MVS, VSE
 New “Lines of OO Code” and “Control Flow” reports from XREF
– Support added for many languages
– APAR PQ23796: PTFs UQ28715 (CMS), UQ28678 (MVS), UQ28708
(VSE)
 Details in Session 8166
High Level Assembler Release 3  IBM Corporation 2000
High Level Assembler Release 3 Summary 24

 Support for all new hardware features


– New instructions, data types, data conversions
– Toolkit Feature debugger, disassembler, program understander
 New options
– General register XREF, diagnostic options
 New statements
– USING range controls, dynamic control of certain options
 Expanded and enhanced diagnostic support
– Improved USING checks, more detailed messages
– Checks for numerous inadvertent errors
 Enhanced support for exits and functions
 Toolkit Feature enhancements

IBM's continuing commitment to support Assembler


applications
High Level Assembler Release 3  IBM Corporation 2000
References 25

 High Level Assembler for MVS & VM & VSE publications:


– Language Reference (SC26-4940)
– Programmer's Guide (SC26-4941)
– Toolkit Feature User's Guide (GC26-8710)
– Toolkit Feature Interactive Debug Facility User's Guide (GC26-8709)
– ...and others of not-as-general interest
 Related SHARE 94 presentation materials:
Session Description
8165 HLASM Features Exploitation
8166 HLASM Toolkit Feature
8167-8 Conditional Assembly and Macro Techniques
8170 New Programming Support in the DFSMS/MVS
Binder

High Level Assembler Release 3  IBM Corporation 2000


HLAOVUE Rev. 25 Feb 00 1720 Fmt. 25 Feb 00, 1725

You might also like