📄 comp_fo5.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="09/01/03 09:54:17">
<title>C.4 Loading sequence</title>
<STYLE TYPE="text/css">
<!--
span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>
</head>
<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">
<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>
<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="st20c1to.htm"><img src="images/navtoc.gif" width="84" height="23"
border="0" alt="TOC"> </a></td>
<td><a href="comp_fo4.htm"><img src="images/navprev.gif" width="80" height="23"
border="0" alt="PREV"> </a></td>
<td><a href="glossary.htm"><img src="images/navnext.gif" width="83" height="23"
border="0" alt="NEXT"> </a></td>
<td><a href="st20c1ix.htm"><img src="images/navidx.gif" width="84" height="23"
border="0" alt="INDEX"> </a></td>
</tr>
</table>
<p><br clear="all">
</p>
<hr align="left">
<blockquote>
<h2>
<a name="1051178"> </a><font color="#003366" face="Verdana, Arial, Helvetica, sans-serif">C.4 Loading sequence</font>
</h2><hr>
<p>
<a name="1051179"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">The three registers of the evaluation stack are used to hold operands of instructions. Evaluation of an operand or parameter may involve the use of more than one register. Care is needed when evaluating such operands to ensure that the first operand to be loaded is not pushed off the bottom of the evaluation stack by the evaluation of later operands. The processor does not detect evaluation stack overflow. </font>
</p>
<p>
<a name="1051180"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">Three registers are available for loading the first operand, two registers for the second and one for the third. Consequently, the instructions are designed so that <span class=Signal>Creg</span> holds the operand which, on average, is the most complex, and <span class=Signal>Areg</span> the operand which is the least complex. </font>
</p>
<p>
<a name="1051181"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">In some cases, it is necessary to evaluate the <span class=Signal>Areg</span> and <span class=Signal>Breg</span> operands in advance, and to store the results in temporary variables. This can sometimes be avoided using the reverse instruction. Any of the following sequences may be used to load the operands A, B and C into <span class=Signal>Areg</span>, <span class=Signal>Breg</span> and <span class=Signal>Creg</span> respectively. </font>
</p>
<ul>
<p> <font size=2 face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1051182"> </a><strong>C; B; A</strong></font></p>
<p> <font size=2 face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1051183"> </a><strong>C; A; B; rev</strong></font></p>
<p> <font size=2 face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1051184"> </a><strong>B; C; rev; A</strong></font></p>
<p> <font size=2 face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1051185"> </a><strong>A; C; rev; B; rev</strong></font></p>
</ul>
<p>
<a name="1051186"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">The choice of loading sequence, and of which operands should be evaluated in advance is determined by the number of registers required to evaluate each of the operands. </font>
</p>
<p>
<a name="1051187"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">In particular, if C requires more than two registers it must be loaded before A and B. If A or B requires more than two registers it must be evaluated before C and may need to be stored in a temporary variable if C requires more than two registers.
<br><br>
<table border="1" cellpadding="5" cellspacing="0">
<caption><b><i><font face="Verdana, Arial, Helvetica, sans-serif"><a name="1051471"> </a><font face="Helvetica">Table 53: Register loading sequences</font></font></i></b></caption>
<tr align="center" bgcolor="#CCCCCC">
<th colspan="3" rowspan="1"><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051190"> </a><font face="Verdana, Arial, Helvetica, sans-serif">Registersrequired</font></font></th>
<th colspan="2" rowspan="1"><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051196"> </a><font face="Verdana, Arial, Helvetica, sans-serif">temp</font></font></th>
<th colspan="1" rowspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051200"> </a><font face="Verdana, Arial, Helvetica, sans-serif">Loadsequence</font></font></th>
<th colspan="1" rowspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051202"> </a><font face="Verdana, Arial, Helvetica, sans-serif">Instructions</font></font></th>
</tr>
<tr align="center" bgcolor="#CCCCCC">
<th><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051204"> </a><font face="Verdana, Arial, Helvetica, sans-serif">C</font></font></th>
<th><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051206"> </a><font face="Verdana, Arial, Helvetica, sans-serif">B</font></font></th>
<th><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051208"> </a><font face="Verdana, Arial, Helvetica, sans-serif">A</font></font></th>
<th><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051210"> </a><font face="Verdana, Arial, Helvetica, sans-serif">b</font></font></th>
<th><font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><a name="1051212"> </a><font face="Verdana, Arial, Helvetica, sans-serif">a</font></font></th>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif"><a name="1051218"> </a><div ><font size=2><font face=symbol>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -