<html lang="en">
<head>
<title>SCORE-Pseudo - 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="SCORE_002dDependent.html#SCORE_002dDependent" title="SCORE-Dependent">
<link rel="prev" href="SCORE_002dOpts.html#SCORE_002dOpts" title="SCORE-Opts">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".

Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010 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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="SCORE-Pseudo"></a>
<a name="SCORE_002dPseudo"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="SCORE_002dOpts.html#SCORE_002dOpts">SCORE-Opts</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="SCORE_002dDependent.html#SCORE_002dDependent">SCORE-Dependent</a>
<hr>
</div>

<h4 class="subsection">9.32.2 SCORE Assembler Directives</h4>

<p><a name="index-directives-for-SCORE-1562"></a><a name="index-SCORE-directives-1563"></a>A number of assembler directives are available for SCORE.  The
following table is far from complete.

     <dl>
<dt><code>.set nwarn</code><dd>Let the assembler not to generate warnings if the source machine
language instructions happen data dependency.

     <br><dt><code>.set fixdd</code><dd>Let the assembler to insert bubbles (32 bit nop instruction /
16 bit nop! Instruction) if the source machine language instructions
happen data dependency.

     <br><dt><code>.set nofixdd</code><dd>Let the assembler to generate warnings if the source machine
language instructions happen data dependency. (Default)

     <br><dt><code>.set r1</code><dd>Let the assembler not to generate warnings if the source program
uses r1. allow user to use r1

     <br><dt><code>set nor1</code><dd>Let the assembler to generate warnings if the source program uses
r1. (Default)

     <br><dt><code>.sdata</code><dd>Tell the assembler to add subsequent data into the sdata section

     <br><dt><code>.rdata</code><dd>Tell the assembler to add subsequent data into the rdata section

     <br><dt><code>.frame "frame-register", "offset", "return-pc-register"</code><dd>Describe a stack frame. "frame-register" is the frame register,
"offset" is the distance from the frame register to the virtual
frame pointer, "return-pc-register" is the return program register. 
You must use ".ent" before ".frame" and only one ".frame" can be
used per ".ent".

     <br><dt><code>.mask "bitmask", "frameoffset"</code><dd>Indicate which of the integer registers are saved in the current
function's stack frame, this is for the debugger to explain the
frame chain.

     <br><dt><code>.ent "proc-name"</code><dd>Set the beginning of the procedure "proc_name". Use this directive
when you want to generate information for the debugger.

     <br><dt><code>.end proc-name</code><dd>Set the end of a procedure. Use this directive to generate information
for the debugger.

     <br><dt><code>.bss</code><dd>Switch the destination of following statements into the bss section,
which is used for data that is uninitialized anywhere.

   </dl>

<!-- Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2001, 2003, 2004, -->
<!-- 2005, 2008, 2010  Free Software Foundation, Inc. -->
<!-- This is part of the GAS manual. -->
<!-- For copying conditions, see the file as.texinfo. -->
   </body></html>

