Chapter 20.
ESA/390 Dependent Features
20.1. Notes
The ESA/390
as
port is currently intended to be a back end for the gnu cc compiler. It is not HLASM
compatible, although it does support a subset of some of the HLASM directives. The only supported
binary file format is ELF; none of the usual MVS/VM/OE/USS object file formats, such as ESD or
XSD, are supported.
When used with the gnu cc compiler, the ESA/390
as
will produce correct, fully relocated, functional
binaries, and has been used to compile and execute large projects. However, many aspects should still
be considered experimental; these include shared library support, dynamically loadable objects, and
any relocation other than the 31 bit relocation.
20.2. Options
as
has no machine dependent command line options for the ESA/390.
20.3. Syntax
The opcode/operand syntax follows the ESA/390 Principles of Operation manual; assembler direc 
tives and general syntax are loosely based on the prevailing AT&T/SVR4/ELF/Solaris style notation.
HLASM style directives are not supported for the most part, with the exception of those described
herein.
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.
A colon may immediately follow a label definition. This is simply for compatibility with how most
assembly language programmers write code.
#
is the line comment character.
;
can be used instead of a newline to separate statements.
Since
$
has no special meaning, you may use it in symbol names.
Registers can be given the symbolic names r0..r15, fp0, fp2, fp4, fp6. By using thesse symbolic names,
as
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.
*
is the current location counter. Unlike
.
it is always relative to the last USING directive. Note that
this means that expressions cannot use multiplication, as any occurrence of
*
will be interpreted as a
location counter.
All labels are relative to the last USING. Thus, branches to a label always imply the use of
base+displacement.
Many of the usual forms of address constants / address literals are supported. Thus,
.using *,r3
L r15,=A(some_routine)
LM r6,r7,=V(some_longlong_extern)
A r1,=F'12'






footer




 

 

 

 

 Home | About Us | Network | Services | Support | FAQ | Control Panel | Order Online | Sitemap | Contact

canadian web hosting

 

Our partners: PHP: Hypertext Preprocessor Best Web Hosting Java Web Hosting Inexpensive Web Hosting  Jsp Web Hosting

Cheapest Web Hosting Jsp Hosting Cheap Hosting

Visionwebhosting.net Business web hosting division of Web Design Plus. All rights reserved