⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esa-390-syntax.html

📁 gcc手册
💻 HTML
字号:
<html lang="en">

<head>

<title>Using as</title>

<meta http-equiv="Content-Type" content="text/html">

<meta name="description" content="Using as">

<meta name="generator" content="makeinfo 4.3">

<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">

</head>

<body>

<div class="node">

<p>

Node:<a name="ESA%2f390%20Syntax">ESA/390 Syntax</a>,

Next:<a rel="next" accesskey="n" href="ESA-390-Floating-Point.html#ESA%2f390%20Floating%20Point">ESA/390 Floating Point</a>,

Previous:<a rel="previous" accesskey="p" href="ESA-390-Options.html#ESA%2f390%20Options">ESA/390 Options</a>,

Up:<a rel="up" accesskey="u" href="ESA-390-Dependent.html#ESA%2f390-Dependent">ESA/390-Dependent</a>

<hr><br>

</div>



<h4 class="section">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&amp;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><code>#</code> is the line comment character.



   <p><code>;</code> can be used instead of a newline to separate statements.



   <p>Since <code>$</code> 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><code>*</code> is the current location counter.  Unlike <code>.</code> it is always

relative to the last USING directive.  Note that this means that

expressions cannot use multiplication, as any occurence of <code>*</code>

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>

   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>



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -