<html lang="en"> <head> <title>ESA/390 Syntax - Using as</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="Using as"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="ESA_002f390_002dDependent.html#ESA_002f390_002dDependent" title="ESA/390-Dependent"> <link rel="prev" href="ESA_002f390-Options.html#ESA_002f390-Options" title="ESA/390 Options"> <link rel="next" href="ESA_002f390-Floating-Point.html#ESA_002f390-Floating-Point" title="ESA/390 Floating Point"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This file documents the GNU Assembler "as". Copyright (C) 1991-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="ESA%2f390-Syntax"></a> <a name="ESA_002f390-Syntax"></a> <p> Next: <a rel="next" accesskey="n" href="ESA_002f390-Floating-Point.html#ESA_002f390-Floating-Point">ESA/390 Floating Point</a>, Previous: <a rel="previous" accesskey="p" href="ESA_002f390-Options.html#ESA_002f390-Options">ESA/390 Options</a>, Up: <a rel="up" accesskey="u" href="ESA_002f390_002dDependent.html#ESA_002f390_002dDependent">ESA/390-Dependent</a> <hr> </div> <h4 class="subsection">9.14.3 Syntax</h4> <p>The opcode/operand syntax follows the ESA/390 Principles of Operation manual; assembler directives and general syntax are loosely based on the prevailing AT&T/SVR4/ELF/Solaris style notation. HLASM-style directives are <em>not</em> supported for the most part, with the exception of those described herein. <p>A leading dot in front of directives is optional, and the case of directives is ignored; thus for example, .using and USING have the same effect. <p>A colon may immediately follow a label definition. This is simply for compatibility with how most assembly language programmers write code. <p>‘<samp><span class="samp">#</span></samp>’ is the line comment character. <p>‘<samp><span class="samp">;</span></samp>’ can be used instead of a newline to separate statements. <p>Since ‘<samp><span class="samp">$</span></samp>’ has no special meaning, you may use it in symbol names. <p>Registers can be given the symbolic names r0..r15, fp0, fp2, fp4, fp6. By using thesse symbolic names, <code>as</code> can detect simple syntax errors. The name rarg or r.arg is a synonym for r11, rtca or r.tca for r12, sp, r.sp, dsa r.dsa for r13, lr or r.lr for r14, rbase or r.base for r3 and rpgt or r.pgt for r4. <p>‘<samp><span class="samp">*</span></samp>’ is the current location counter. Unlike ‘<samp><span class="samp">.</span></samp>’ it is always relative to the last USING directive. Note that this means that expressions cannot use multiplication, as any occurrence of ‘<samp><span class="samp">*</span></samp>’ will be interpreted as a location counter. <p>All labels are relative to the last USING. Thus, branches to a label always imply the use of base+displacement. <p>Many of the usual forms of address constants / address literals are supported. Thus, <pre class="example"> .using *,r3 L r15,=A(some_routine) LM r6,r7,=V(some_longlong_extern) A r1,=F'12' AH r0,=H'42' ME r6,=E'3.1416' MD r6,=D'3.14159265358979' O r6,=XL4'cacad0d0' .ltorg </pre> <p>should all behave as expected: that is, an entry in the literal pool will be created (or reused if it already exists), and the instruction operands will be the displacement into the literal pool using the current base register (as last declared with the <code>.using</code> directive). </body></html>