Content deleted Content added
Rescuing 3 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
→External links: HLASM URLs |
||
(15 intermediate revisions by 9 users not shown) | |||
Line 69:
==General characteristics==
As it is an [[assembly language]], BAL uses the native [[instruction set]] of the IBM mainframe architecture on which it runs, [[IBM System/360|System/360]]
The simplicity of machine instructions means that the [[source code]] of a program written in assembler will usually be much longer than an equivalent program in, say, [[COBOL]] or [[Fortran]]. In the past, the speed of hand-coded assembler programs was often felt to make up for this drawback, but with the advent of optimizing compilers, [[C (programming language)|C]] for the mainframe, and other advances, assembler has lost much of its appeal. IBM continues to upgrade the assembler, however, and it is still used when the need for speed or very fine control is paramount. However, all of the IBM successors to BAL have included a sophisticated macro facility that allows writing much more compact source code.
Line 241 ⟶ 239:
===Assembler D===
Assembler D was the [[DOS/360 and successors|DOS/360]] assembler for machines with a memory size of 16 KB. It came in two versions: A 10 KB variant for machines with the minimum 16 KB memory, and a 14 KB variant for machines with 24 KB. An F-level assembler was also available for DOS machines with 64 KB or more. D assemblers offered nearly all the features of higher versions.<ref name=ASMD>{{cite book|last=IBM Corporation|title=IBM System/360 Disk and Tape Operating Systems Assembler Language|year=1970|url=http://bitsavers.trailing-edge.com/pdf/ibm/360/dos/asm/GC24-3414-7_Disk_and_Tape_Operating_Systems_Assembler_Language_Aug70.pdf|access-date=
===Assembler E and F===
Line 249 ⟶ 247:
Assembler H runs on [[OS/360 and successors]]; it was faster and more powerful than Assembler F, but the macro language was not fully compatible.
Assembler H Version 2 was announced in 1981 and includes support for Extended Architecture (XA), including the <code>AMODE</code> and <code>RMODE</code> directives.<ref>{{cite book|last=IBM Corporation|title=MVS/Extended Architecture Conversion Notebook|year=1984|url=http://www.bitsavers.org/pdf/ibm/370/MVS_XA/GC28-1143-2_MVS-XA_Conversion_Notebook_May84.pdf}}</ref>{{rp|page=3{{hyp}}28}} It was withdrawn from marketing in 1994 and support ended in 1995. It was replaced by High Level Assembler.<ref>{{cite web|last=IBM Corporation|title=5668-962 IBM Assembler H Version 2 Release 1.0|website=[[IBM]] |date=20 December 1996|url=
===Assembler XF===
Assembler XF is a mostly compatible upgrade of Assembler F that includes the new System/370 architecture instructions. This version provides a common assembler for OS/VS, DOS/VS and VM systems. Other changes include relaxing restrictions on expressions and macro processing. Assembler XF requires a minimum partition/region size of 64 KB (virtual). Recommended size is 128 KB.<ref>{{cite book|last=IBM Corporation|title=OS/VS Assembler Programmer's Guide|year=1973|url=http://bitsavers.
===High Level Assembler===
'''High Level Assembler''' or '''HLASM''' was released in June 1992 replacing IBM's Assembler H Version 2.<ref>{{cite web|last=IBM Corporation|title=IBM High Level Assembler and Toolkit Feature - Release History|website=[[IBM]] |date=19 October 2018 |url=
| title = Module 24: SLAC Enhancements to and Beautifications of the IBM H-Level Assembler for Version 2.8
| author = Greg Mushial
Line 284 ⟶ 282:
...
</syntaxhighlight>
}} <code>USING</code> statements, a list of <code>USING</code> statements currently active, an indication of whether a variable is read or written in the cross-reference, and allowing mixed-case symbol names.<ref
▲</ref> The <code>RSECT</code> directive (Read-only Control Section) allows the assembler to check reentrancy on a per-section basis. <code>RSECT</code> was previously "undocumented and inconsistently implemented in Assembler H."<ref>{{cite book
| title = IBM High Level Assembler for MVS & VM & VSE Release 2 Presentation Guide
| id = SG24-3910-01
Line 347 ⟶ 337:
Most significantly the Model 44 assembler lacks support for macros and continuation statements. On the other hand it has a number of features not found in other System/360 assemblers—notably instructions to update a [[card image]] source dataset, named common, and implicit definition of <code>SETA</code> assembler variables.<ref>{{cite book |last1=IBM Corporation |title=IBM System/360 Model 44 Programming System Assembler Language |date=1966 |page=73 |url=http://bitsavers.org/pdf/ibm/360/model44/C28-6811-1_Model_44_Programming_System_Assembler_Language_1966.pdf |accessdate=July 2, 2019}}</ref>
It has no support for storage-to-storage (SS) instructions or the ''convert to binary'' (<code>CVB</code>), ''convert to decimal'' (<code>CVD</code>), ''read direct'' (<code>RDD</code>) and ''write direct'' (<code>WRD</code>) instructions.<ref name=M44>{{cite book|last=IBM Corporation|title=IBM System/360 Model 44 Programming System Assembler Language|year=1966|url=http://bitsavers.
It also includes directives to update the source program, a function performed by utility programs in other systems (<code>SKPTO</code>, <code>REWND</code>, <code>NUM</code>, <code>OMIT</code> and <code>ENDUP</code>).<ref name=M44 />{{rp|pages=53,73}}
Line 370 ⟶ 360:
==Importance==
Originally all System/360 operating systems were written in assembler language, and all system interfaces were defined by macro definitions. Access from high-level languages (HLLs) was restricted to what that language supplied, and other system calls had to be coded as assembler subroutines called from HLL programs. Also, IBM allowed customization of OS features by an installation
==See also==
Line 387 ⟶ 377:
{{Wikibooks|360 Assembly}}
* [https://www.ibm.com/docs/en/hla-and-tf/1.6.0?topic=
* [https://www.ibm.com/docs/en/SSENW6_1.6.0/pdf/asmg1025_pdf.pdf High Level Assembler for z/OS & z/VM & z/VSE 1.6 General Information]
* [http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/asm/SC20-1646-6_int360asm_Aug70.pdf A Programmer's Introduction to IBM System/360 Assembler Language (Student Text)]
* [
* [http://punctiliousprogrammer.com/ The Punctilious Programmer: IBM Mainframe Assembler]
* [https://www.amazon.com/dp/B00NS797PQ Basic IBM Mainframe Assembly Language Programming]
|