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

📄 m68k-opts.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="M68K-Opts">M68K-Opts</a>,

Next:<a rel="next" accesskey="n" href="M68K-Syntax.html#M68K-Syntax">M68K-Syntax</a>,

Up:<a rel="up" accesskey="u" href="M68K-Dependent.html#M68K-Dependent">M68K-Dependent</a>

<hr><br>

</div>



<h4 class="section">M680x0 Options</h4>



   <p>The Motorola 680x0 version of <code>as</code> has a few machine

dependent options:



     <dl>



     <br><dt><code>-l</code>

     <dd>You can use the <code>-l</code> option to shorten the size of references to undefined

symbols.  If you do not use the <code>-l</code> option, references to undefined

symbols are wide enough for a full <code>long</code> (32 bits).  (Since

<code>as</code> cannot know where these symbols end up, <code>as</code> can

only allocate space for the linker to fill in later.  Since <code>as</code>

does not know how far away these symbols are, it allocates as much space as it

can.)  If you use this option, the references are only one word wide (16 bits). 

This may be useful if you want the object file to be as small as possible, and

you know that the relevant symbols are always less than 17 bits away.



     <br><dt><code>--register-prefix-optional</code>

     <dd>For some configurations, especially those where the compiler normally

does not prepend an underscore to the names of user variables, the

assembler requires a <code>%</code> before any use of a register name.  This

is intended to let the assembler distinguish between C variables and

functions named <code>a0</code> through <code>a7</code>, and so on.  The <code>%</code> is

always accepted, but is not required for certain configurations, notably

<code>sun3</code>.  The <code>--register-prefix-optional</code> option may be used

to permit omitting the <code>%</code> even for configurations for which it is

normally required.  If this is done, it will generally be impossible to

refer to C variables and functions with the same names as register

names.



     <br><dt><code>--bitwise-or</code>

     <dd>Normally the character <code>|</code> is treated as a comment character, which

means that it can not be used in expressions.  The <code>--bitwise-or</code>

option turns <code>|</code> into a normal character.  In this mode, you must

either use C style comments, or start comments with a <code>#</code> character

at the beginning of a line.



     <br><dt><code>--base-size-default-16  --base-size-default-32</code>

     <dd>If you use an addressing mode with a base register without specifying

the size, <code>as</code> will normally use the full 32 bit value. 

For example, the addressing mode <code>%a0@(%d0)</code> is equivalent to

<code>%a0@(%d0:l)</code>.  You may use the <code>--base-size-default-16</code>

option to tell <code>as</code> to default to using the 16 bit value. 

In this case, <code>%a0@(%d0)</code> is equivalent to <code>%a0@(%d0:w)</code>. 

You may use the <code>--base-size-default-32</code> option to restore the

default behaviour.



     <br><dt><code>--disp-size-default-16  --disp-size-default-32</code>

     <dd>If you use an addressing mode with a displacement, and the value of the

displacement is not known, <code>as</code> will normally assume that

the value is 32 bits.  For example, if the symbol <code>disp</code> has not

been defined, <code>as</code> will assemble the addressing mode

<code>%a0@(disp,%d0)</code> as though <code>disp</code> is a 32 bit value.  You may

use the <code>--disp-size-default-16</code> option to tell <code>as</code>

to instead assume that the displacement is 16 bits.  In this case,

<code>as</code> will assemble <code>%a0@(disp,%d0)</code> as though

<code>disp</code> is a 16 bit value.  You may use the

<code>--disp-size-default-32</code> option to restore the default behaviour.



     <br><dt><code>--pcrel</code>

     <dd>Always keep branches PC-relative.  In the M680x0 architecture all branches

are defined as PC-relative.  However, on some processors they are limited

to word displacements maximum.  When <code>as</code> needs a long branch

that is not available, it normally emits an absolute jump instead.  This

option disables this substitution.  When this option is given and no long

branches are available, only word branches will be emitted.  An error

message will be generated if a word branch cannot reach its target.  This

option has no effect on 68020 and other processors that have long branches. 

see <a href="M68K-Branch.html#M68K-Branch">Branch Improvement</a>.



     <br><dt><code>-m68000</code>

     <dd><code>as</code> can assemble code for several different members of the

Motorola 680x0 family.  The default depends upon how <code>as</code>

was configured when it was built; normally, the default is to assemble

code for the 68020 microprocessor.  The following options may be used to

change the default.  These options control which instructions and

addressing modes are permitted.  The members of the 680x0 family are

very similar.  For detailed information about the differences, see the

Motorola manuals.



          <dl>

<dt><code>-m68000</code>

          <dd><dt><code>-m68ec000</code>

          <dd><dt><code>-m68hc000</code>

          <dd><dt><code>-m68hc001</code>

          <dd><dt><code>-m68008</code>

          <dd><dt><code>-m68302</code>

          <dd><dt><code>-m68306</code>

          <dd><dt><code>-m68307</code>

          <dd><dt><code>-m68322</code>

          <dd><dt><code>-m68356</code>

          <dd>Assemble for the 68000. <code>-m68008</code>, <code>-m68302</code>, and so on are synonyms

for <code>-m68000</code>, since the chips are the same from the point of view

of the assembler.



          <br><dt><code>-m68010</code>

          <dd>Assemble for the 68010.



          <br><dt><code>-m68020</code>

          <dd><dt><code>-m68ec020</code>

          <dd>Assemble for the 68020.  This is normally the default.



          <br><dt><code>-m68030</code>

          <dd><dt><code>-m68ec030</code>

          <dd>Assemble for the 68030.



          <br><dt><code>-m68040</code>

          <dd><dt><code>-m68ec040</code>

          <dd>Assemble for the 68040.



          <br><dt><code>-m68060</code>

          <dd><dt><code>-m68ec060</code>

          <dd>Assemble for the 68060.



          <br><dt><code>-mcpu32</code>

          <dd><dt><code>-m68330</code>

          <dd><dt><code>-m68331</code>

          <dd><dt><code>-m68332</code>

          <dd><dt><code>-m68333</code>

          <dd><dt><code>-m68334</code>

          <dd><dt><code>-m68336</code>

          <dd><dt><code>-m68340</code>

          <dd><dt><code>-m68341</code>

          <dd><dt><code>-m68349</code>

          <dd><dt><code>-m68360</code>

          <dd>Assemble for the CPU32 family of chips.



          <br><dt><code>-m5200</code>

          <dd>Assemble for the ColdFire family of chips.



          <br><dt><code>-m68881</code>

          <dd><dt><code>-m68882</code>

          <dd>Assemble 68881 floating point instructions.  This is the default for the

68020, 68030, and the CPU32.  The 68040 and 68060 always support

floating point instructions.



          <br><dt><code>-mno-68881</code>

          <dd>Do not assemble 68881 floating point instructions.  This is the default

for 68000 and the 68010.  The 68040 and 68060 always support floating

point instructions, even if this option is used.



          <br><dt><code>-m68851</code>

          <dd>Assemble 68851 MMU instructions.  This is the default for the 68020,

68030, and 68060.  The 68040 accepts a somewhat different set of MMU

instructions; <code>-m68851</code> and <code>-m68040</code> should not be used

together.



          <br><dt><code>-mno-68851</code>

          <dd>Do not assemble 68851 MMU instructions.  This is the default for the

68000, 68010, and the CPU32.  The 68040 accepts a somewhat different set

of MMU instructions. 

</dl>

</dl>



   </body></html>



⌨️ 快捷键说明

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