Files
2024-02-19 00:25:23 -05:00

218 lines
5.4 KiB
HTML

<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52
from ../texi/as.texinfo on 24 April 1999 -->
<TITLE>Using as - AMD 29K Dependent Features</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="as_1.html">first</A>, <A HREF="as_9.html">previous</A>, <A HREF="as_11.html">next</A>, <A HREF="as_27.html">last</A> section, <A HREF="as_toc.html">table of contents</A>.
<P><HR><P>
<H1><A NAME="SEC143" HREF="as_toc.html#TOC143">AMD 29K Dependent Features</A></H1>
<P>
<A NAME="IDX433"></A>
<A NAME="IDX434"></A>
</P>
<H2><A NAME="SEC144" HREF="as_toc.html#TOC144">Options</A></H2>
<P>
<A NAME="IDX435"></A>
<A NAME="IDX436"></A>
<CODE>as</CODE> has no additional command-line options for the AMD
29K family.
</P>
<H2><A NAME="SEC145" HREF="as_toc.html#TOC145">Syntax</A></H2>
<H3><A NAME="SEC146" HREF="as_toc.html#TOC146">Macros</A></H3>
<P>
<A NAME="IDX437"></A>
<A NAME="IDX438"></A>
The macro syntax used on the AMD 29K is like that described in the AMD
29K Family Macro Assembler Specification. Normal <CODE>as</CODE>
macros should still work.
</P>
<H3><A NAME="SEC147" HREF="as_toc.html#TOC147">Special Characters</A></H3>
<P>
<A NAME="IDX439"></A>
<A NAME="IDX440"></A>
<SAMP>`;'</SAMP> is the line comment character.
</P>
<P>
<A NAME="IDX441"></A>
<A NAME="IDX442"></A>
The character <SAMP>`?'</SAMP> is permitted in identifiers (but may not begin
an identifier).
</P>
<H3><A NAME="SEC148" HREF="as_toc.html#TOC148">Register Names</A></H3>
<P>
<A NAME="IDX443"></A>
<A NAME="IDX444"></A>
General-purpose registers are represented by predefined symbols of the
form <SAMP>`GR<VAR>nnn</VAR>'</SAMP> (for global registers) or <SAMP>`LR<VAR>nnn</VAR>'</SAMP>
(for local registers), where <VAR>nnn</VAR> represents a number between
<CODE>0</CODE> and <CODE>127</CODE>, written with no leading zeros. The leading
letters may be in either upper or lower case; for example, <SAMP>`gr13'</SAMP>
and <SAMP>`LR7'</SAMP> are both valid register names.
</P>
<P>
You may also refer to general-purpose registers by specifying the
register number as the result of an expression (prefixed with <SAMP>`%%'</SAMP>
to flag the expression as a register number):
<PRE>
%%<VAR>expression</VAR>
</PRE>
<P>
---where <VAR>expression</VAR> must be an absolute expression evaluating to a
number between <CODE>0</CODE> and <CODE>255</CODE>. The range [0, 127] refers to
global registers, and the range [128, 255] to local registers.
</P>
<P>
<A NAME="IDX445"></A>
<A NAME="IDX446"></A>
<A NAME="IDX447"></A>
<A NAME="IDX448"></A>
In addition, <CODE>as</CODE> understands the following protected
special-purpose register names for the AMD 29K family:
</P>
<PRE>
vab chd pc0
ops chc pc1
cps rbp pc2
cfg tmc mmu
cha tmr lru
</PRE>
<P>
These unprotected special-purpose register names are also recognized:
<PRE>
ipc alu fpe
ipa bp inte
ipb fc fps
q cr exop
</PRE>
<H2><A NAME="SEC149" HREF="as_toc.html#TOC149">Floating Point</A></H2>
<P>
<A NAME="IDX449"></A>
<A NAME="IDX450"></A>
The AMD 29K family uses IEEE floating-point numbers.
</P>
<H2><A NAME="SEC150" HREF="as_toc.html#TOC150">AMD 29K Machine Directives</A></H2>
<P>
<A NAME="IDX451"></A>
<A NAME="IDX452"></A>
<DL COMPACT>
<DT><CODE>.block <VAR>size</VAR> , <VAR>fill</VAR></CODE>
<DD>
<A NAME="IDX453"></A>
This directive emits <VAR>size</VAR> bytes, each of value <VAR>fill</VAR>. Both
<VAR>size</VAR> and <VAR>fill</VAR> are absolute expressions. If the comma
and <VAR>fill</VAR> are omitted, <VAR>fill</VAR> is assumed to be zero.
In other versions of the GNU assembler, this directive is called
<SAMP>`.space'</SAMP>.
</DL>
<DL COMPACT>
<DT><CODE>.cputype</CODE>
<DD>
<A NAME="IDX454"></A>
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
<A NAME="IDX455"></A>
<DT><CODE>.file</CODE>
<DD>
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
<BLOCKQUOTE>
<P>
<EM>Warning:</EM> in other versions of the GNU assembler, <CODE>.file</CODE> is
used for the directive called <CODE>.app-file</CODE> in the AMD 29K support.
</BLOCKQUOTE>
<A NAME="IDX456"></A>
<DT><CODE>.line</CODE>
<DD>
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
<A NAME="IDX457"></A>
<DT><CODE>.sect</CODE>
<DD>
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
<A NAME="IDX458"></A>
<DT><CODE>.use <VAR>section name</VAR></CODE>
<DD>
Establishes the section and subsection for the following code;
<VAR>section name</VAR> may be one of <CODE>.text</CODE>, <CODE>.data</CODE>,
<CODE>.data1</CODE>, or <CODE>.lit</CODE>. With one of the first three <VAR>section
name</VAR> options, <SAMP>`.use'</SAMP> is equivalent to the machine directive
<VAR>section name</VAR>; the remaining case, <SAMP>`.use .lit'</SAMP>, is the same as
<SAMP>`.data 200'</SAMP>.
</DL>
<H2><A NAME="SEC151" HREF="as_toc.html#TOC151">Opcodes</A></H2>
<P>
<A NAME="IDX459"></A>
<A NAME="IDX460"></A>
<CODE>as</CODE> implements all the standard AMD 29K opcodes. No
additional pseudo-instructions are needed on this family.
</P>
<P>
For information on the 29K machine instruction set, see <CITE>Am29000
User's Manual</CITE>, Advanced Micro Devices, Inc.
</P>
<P><HR><P>
Go to the <A HREF="as_1.html">first</A>, <A HREF="as_9.html">previous</A>, <A HREF="as_11.html">next</A>, <A HREF="as_27.html">last</A> section, <A HREF="as_toc.html">table of contents</A>.
</BODY>
</HTML>