98636784d7a47ab08a808bbaa4773d476b0d168d
[YACASL2.git] / doc / casl2_spec.html
1 <html lang="en">
2 <head>
3 <title>アセンブラ言語の仕様</title>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <meta name="description" content="アセンブラ言語の仕様">
6 <meta name="generator" content="makeinfo 4.13">
7 <link title="Top" rel="top" href="#Top">
8 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
9 <!--
10 Copyright (C) Information-technology Promotion Agency, Japan. All rights reserved 2012-->
11 <meta http-equiv="Content-Style-Type" content="text/css">
12 <style type="text/css"><!--
13   pre.display { font-family:inherit }
14   pre.format  { font-family:inherit }
15   pre.smalldisplay { font-family:inherit; font-size:smaller }
16   pre.smallformat  { font-family:inherit; font-size:smaller }
17   pre.smallexample { font-size:smaller }
18   pre.smalllisp    { font-size:smaller }
19   span.sc    { font-variant:small-caps }
20   span.roman { font-family:serif; font-weight:normal; } 
21   span.sansserif { font-family:sans-serif; font-weight:normal; } 
22 body {
23     margin-left: 6em;
24     margin-right: 12em;
25     color: black;
26     background-color: #EEE;
27 }
28
29 h1, h2 {
30     margin-left: -2em;
31 }
32
33 .node{
34     margin-left: -3em;
35     color: inherit;
36     background-color: #DDF;
37 }
38
39 .menu, .node {
40     color: inherit;
41     background-color: #DDF;
42 }
43
44 h2 {
45     padding: 0.25em;
46     color: white;
47     background-color: navy;
48 }
49
50 .contents {
51     background-color: #DDF;
52     border: 4px double #000;
53 }
54
55 .contents h2 {
56     margin-left: 0;
57     color: black;
58     background-color: #DDF;
59 }
60
61 .shortcontents {
62     background-color: #DDF;
63     border: 4px double #000;
64  }
65
66 .shortcontents h2{
67     display: none;
68 }
69
70 .shortcontents a {
71    margin-right: 1em;
72 }
73
74 h3, h4, h5 {
75     color: navy;
76     margin-left: -1em;
77 }
78
79 h5 {
80     font-size: 100%;
81 }
82
83 p {
84     line-height: 1.25em;
85     margin-top: 0;
86     margin-bottom: 0.5em;
87 }
88
89 a:hover {
90     color: red;
91     text-decoration: underline;
92 }
93
94 pre.example {
95     padding: 0.5em 1em 0.5em 1em;
96     color: #CCC;
97     background: black;
98     font-size: 90%;
99 }
100
101 a {
102     text-decoration: none;
103 }
104
105 blockquote {
106     line-height: 1.25em;
107     border: 1px solid #00F;
108 }
109
110 kbd {
111     font-family: monospace;
112 }
113
114 kbd, code, .file {
115     margin-left:0.5em;
116     margin-right: 0.5em;
117 }
118
119 table, th, td {
120     border: 1px solid #CCC;
121     border-collapse: collapse; /* 枠線の表示方法 */
122 }
123
124 table.cartouche, table.cartouche th, table.cartouche td  {
125     border: none;
126 }
127
128 pre.example .command, pre.example .option, pre.example kbd {
129     font-weight: bold;
130     font-family: monospace;
131     background-color: inherit;
132     color: white;
133     margin-left:0;
134     margin-right: 0;
135 }
136
137 pre.example strong {
138     font: inherit;
139     border: 2px solid green;
140 }
141
142 dt {
143     font-weight: bold;
144 }
145
146 dfn {
147     font-style: normal;
148 }--></style>
149 </head>
150 <body>
151 <h1 class="settitle">アセンブラ言語の仕様</h1>
152 <h2 class="chapter"><a name="TOC0"></a>1 システム COMETIIの仕様</h2>
153
154 <h3 class="section"><a name="TOC1"></a>1.1 ハードウェアの仕様</h3>
155
156      <ol type=1 start=1>
157 <li>1語は16ビットで、そのビット構成は、次のとおりである。
158
159      <pre class="verbatim">      上位8ビット                               下位8ビット
160      | 15 | 14 | 13 | 12 | 11 | 10 |  9 |  8 |  7 |  6 |  5 |  4 |  3 |  2 |  1 |  0 |(ビット番号)
161        ↑
162      符号(負:1、非負:0)
163 </pre>
164
165      <li>主記憶の容量は65536語で、そのアドレスは0~65535番地である。
166
167      <li>数値は、16ビットの2進数で表現する。負数は、2の補数で表現する。
168
169      <li>制御方式は逐次制御で、命令語は1語長又は2語長である。
170
171      <li>レジスタとして、<code>GR</code>(16ビット)、<code>SP</code>(16ビット)、<code>PR</code>(16ビット)、<code>FR</code>(3ビット)の 4 種類がある。
172
173      <p><code>GR</code>(汎用レジスタ、General Register)は、<code>GR0</code>~<code>GR7</code>の8個があり、
174 算術、論理、比較、シフトなどの演算に用いる。
175 このうち、<code>GR1</code>~<code>GR7</code>のレジスタは、指標レジスタ(index register)
176 としてアドレスの修飾にも用いる。
177
178      <p><code>SP</code>(スタックポインタ、Stack Pointer)は、
179 スタックの最上段のアドレスを保持している。
180
181      <p><code>PR</code>(プログラムレジスタ、Program Register)は、
182 次に実行すべき命令語の先頭アドレスを保持している。
183
184      <p><code>FR</code>(フラグレジスタ、Flag Register)は、
185 <code>OF</code>(Overflow Flag)、<code>SF</code>(Sign Flag)、<code>ZF</code>(Zero Flag)と呼ぶ
186 3個のビットからなり、演算命令などの実行によって次の値が設定される。
187 これらの値は、条件付き分岐命令で参照される。
188
189           <dl>
190 <dt><code>OF</code><dd>算術演算命令の場合は、演算結果が-32768~32767に収まらなくなったとき1になり、
191 それ以外のとき0になる。
192 論理演算命令の場合は、演算結果が0~65535に収まらなくなったとき1になり、
193 それ以外のとき0になる。
194
195           <br><dt><code>SF</code><dd>演算結果の符号が負(ビット番号15が1)のとき1、それ以外のとき0になる。
196
197           <br><dt><code>ZF</code><dd>演算結果が零(全部のビットが0)のとき1、それ以外のとき0になる。
198 </dl>
199
200      <li>論理加算又は論理減算は、被演算データを符号のない数値とみなして、
201 加算又は減算する。
202       </ol>
203
204 <h3 class="section"><a name="TOC2"></a>1.2 命令</h3>
205
206  <p>命令の形式及びその機能を示す。
207 ここで、一つの命令コードに対し2種類のオペランドがある場合、
208 上段はレジスタ間の命令、下段はレジスタと主記憶間の命令を表す。
209
210      <ol type=1 start=1>
211 <li>ロード、ストア、ロードアドレス命令
212      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
213 <br></th></tr><tr align="left"><td valign="top" width="25%">ロード <br> LoaD </td><td valign="top" width="10%"><code>LD</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (実効アドレス)</code> </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>には<code>0</code>が設定される。
214 <br></td></tr><tr align="left"><td valign="top" width="25%">ストア <br> STore </td><td valign="top" width="10%"><code>ST</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code>  </td><td valign="top" width="30%"><code>実効アドレス ← (r)</code> </td><td valign="top" width="20%">&ndash;
215 <br></td></tr><tr align="left"><td valign="top" width="25%">ロードアドレス <br> Load ADdress </td><td valign="top" width="10%"><code>LAD</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r ← 実効アドレス</code> </td><td valign="top" width="20%">&ndash;
216      <br></td></tr></table>
217
218      <li>算術、論理演算命令
219      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
220 <br></th></tr><tr align="left"><td valign="top" width="25%">算術加算 <br> ADD Arithmetic </td><td valign="top" width="10%"><code>ADDA</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) + (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) + (実効アドレス)</code> </td><td valign="top" width="20%">○
221 <br></td></tr><tr align="left"><td valign="top" width="25%">論理加算 <br> ADD Logical </td><td valign="top" width="10%"><code>ADDL</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) +L (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) +L (実効アドレス)</code> </td><td valign="top" width="20%">○
222 <br></td></tr><tr align="left"><td valign="top" width="25%">算術減算 <br> SUBtract Arithmetic </td><td valign="top" width="10%"><code>SUBA</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) - (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) - (実効アドレス)</code> </td><td valign="top" width="20%">○
223 <br></td></tr><tr align="left"><td valign="top" width="25%">論理減算 <br> SUBtract Logical </td><td valign="top" width="10%"><code>SUBL</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) - L(r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) - L(実効アドレス)</code> </td><td valign="top" width="20%">○
224 <br></td></tr><tr align="left"><td valign="top" width="25%">論理積 <br> AND </td><td valign="top" width="10%"><code>AND</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) AND (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) AND (実効アドレス)</code> </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>には<code>0</code>が設定される。
225 <br></td></tr><tr align="left"><td valign="top" width="25%">論理和 <br> OR </td><td valign="top" width="10%"><code>OR</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) OR (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) OR (実効アドレス)</code> </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>には<code>0</code>が設定される。
226 <br></td></tr><tr align="left"><td valign="top" width="25%">排他的論理和 <br> eXclusive OR </td><td valign="top" width="10%"><code>XOR</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 ← (r1) XOR (r2)</code> <br> &mdash;&mdash; <br> <code>r ← (r) XOR (実効アドレス)</code> </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>には<code>0</code>が設定される。
227      <br></td></tr></table>
228
229      <li>比較演算命令
230      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
231 <br></th></tr><tr align="left"><td valign="top" width="25%">算術比較 <br> ComPare Arithmetic </td><td valign="top" width="10%"><code>CPA</code></td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>(r1)</code>と<code>(r2)</code>、又は<code>(r)</code>と<code>(実効アドレス)</code>の算術比較を行い、比較結果によって、<code>FR</code>に次の値を設定する。
232           <dl>
233 <dt><dfn>比較結果</dfn><dd>FRの値
234 <br><dt><code>(r1) &gt; (r2)</code><dfn> 又は </dfn><code>(r) &gt; (実効アドレス)</code><dd><code>SF:0, ZF:0</code>
235 <br><dt><code>(r1) = (r2)</code><dfn> 又は </dfn><code>(r) = (実効アドレス)</code><dd><code>SF:0, ZF:1</code>
236 <br><dt><code>(r1) &lt; (r2)</code><dfn> 又は </dfn><code>(r) &lt; (実効アドレス)</code><dd><code>SF:1, ZF:0</code>
237 </dl>
238      </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>には<code>0</code>が設定される。
239 <br></td></tr><tr align="left"><td valign="top" width="25%">論理比較 <br> ComPare Logical </td><td valign="top" width="10%"><code>CPL</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> &mdash;&mdash; <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>(r1)</code>と<code>(r2)</code>、又は<code>(r)</code>と<code>(実効アドレス)</code>の論理比較を行い、比較結果によって、<code>FR</code>に次の値を設定する。
240           <dl>
241 <dt><dfn>比較結果</dfn><dd>FRの値
242 <br><dt><code>(r1) &gt; (r2)</code><dfn> 又は </dfn><code>(r) &gt; (実効アドレス)</code><dd><code>SF:0</code>, <code>ZF:0</code>
243 <br><dt><code>(r1) = (r2)</code><dfn> 又は </dfn><code>(r) = (実効アドレス)</code><dd><code>SF:0</code>, <code>ZF:1</code>
244 <br><dt><code>(r1) &lt; (r2)</code><dfn> 又は </dfn><code>(r) &lt; (実効アドレス)</code><dd><code>SF:1</code>, <code>ZF:0</code>
245 </dl>
246      </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>には<code>0</code>が設定される。
247      <br></td></tr></table>
248
249      <li>シフト演算命令
250      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
251 <br></th></tr><tr align="left"><td valign="top" width="25%">算術左シフト <br> Shift Left Arithmetic </td><td valign="top" width="10%"><code>SLA</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符号を除き<code>(r)</code>を実効アドレスで指定したビット数だけ左にシフトする。シフトの結果、空いたビット位置には、<code>0</code>が入る。 </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>にはレジスタから最後に送り出されたビットの値が設定される。
252 <br></td></tr><tr align="left"><td valign="top" width="25%">算術右シフト <br> Shift Right Arithmetic </td><td valign="top" width="10%"><code>SRA</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符号を除き<code>(r)</code>を実効アドレスで指定したビット数だけ右にシフトする。シフトの結果、空いたビット位置には、符号と同じものが入る。 </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>にはレジスタから最後に送り出されたビットの値が設定される。
253 <br></td></tr><tr align="left"><td valign="top" width="25%">論理左シフト <br> Shift Left Logical </td><td valign="top" width="10%"><code>SLL</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符号を含み<code>(r)</code>を実効アドレスで指定したビット数だけ左にシフトする。シフトの結果,空いたビット位置には<code>0</code>が入る。 </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>にはレジスタから最後に送り出されたビットの値が設定される。
254 <br></td></tr><tr align="left"><td valign="top" width="25%">論理右シフト <br> Shift Right Logical </td><td valign="top" width="10%"><code>SRL</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符号を含み<code>(r)</code>を実効アドレスで指定したビット数だけ右にシフトする。シフトの結果、空いたビット位置には<code>0</code>が入る。 </td><td valign="top" width="20%">○ <br> ただし、<code>OF</code>にはレジスタから最後に送り出されたビットの値が設定される。
255      <br></td></tr></table>
256
257      <li>分岐命令
258      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
259 <br></th></tr><tr align="left"><td valign="top" width="25%">正分岐 <br> Jump on Plus </td><td valign="top" width="10%"><code>JPL</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>の値によって、実効アドレスに分岐する。分岐しないときは、次の命令に進む。
260           <dl>
261 <dt><dfn>分岐するときの</dfn><code>FR</code><dfn>の値</dfn><dd><code>SF:0, ZF:0</code>
262 </dl>
263      </td><td valign="top" width="20%">&ndash;
264 <br></td></tr><tr align="left"><td valign="top" width="25%">負分岐 <br> Jump on MINUS </td><td valign="top" width="10%"><code>JMI</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>の値によって、実効アドレスに分岐する。分岐しないときは、次の命令に進む。
265           <dl>
266 <dt><dfn>分岐するときの</dfn><code>FR</code><dfn>の値</dfn><dd><code>SF:1</code>
267 </dl>
268      </td><td valign="top" width="20%">&ndash;
269 <br></td></tr><tr align="left"><td valign="top" width="25%">非零分岐 <br> Jump on Non Zero </td><td valign="top" width="10%"><code>JNZ</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>の値によって、実効アドレスに分岐する。分岐しないときは、次の命令に進む。
270           <dl>
271 <dt><dfn>分岐するときの</dfn><code>FR</code><dfn>の値</dfn><dd><code>ZF:0</code>
272 </dl>
273      </td><td valign="top" width="20%">&ndash;
274 <br></td></tr><tr align="left"><td valign="top" width="25%">零分岐 <br> Jump on ZEro </td><td valign="top" width="10%"><code>JZE</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>の値によって、実効アドレスに分岐する。分岐しないときは、次の命令に進む。
275           <dl>
276 <dt><dfn>分岐するときの</dfn><code>FR</code><dfn>の値</dfn><dd><code>ZF:1</code>
277 </dl>
278      </td><td valign="top" width="20%">&ndash;
279 <br></td></tr><tr align="left"><td valign="top" width="25%">オーバーフロー分岐 <br> Jump on OVerflow </td><td valign="top" width="10%"><code>JOV</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>の値によって、実効アドレスに分岐する。分岐しないときは、次の命令に進む。
280           <dl>
281 <dt><dfn>分岐するときの</dfn><code>FR</code><dfn>の値</dfn><dd><code>OF:1</code>
282 </dl>
283      </td><td valign="top" width="20%">&ndash;
284 <br></td></tr><tr align="left"><td valign="top" width="25%">無条件分岐 <br> unconditional Jump </td><td valign="top" width="10%"><code>JUMP</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%">無条件に実効アドレスに分岐する。 </td><td valign="top" width="20%">&ndash;
285      <br></td></tr></table>
286
287      <li>スタック操作命令
288      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
289 <br></th></tr><tr align="left"><td valign="top" width="25%">プッシュ <br> PUSH </td><td valign="top" width="10%"><code>PUSH</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>SP ← (SP)-L1</code>, <br> <code>(SP)← (実効アドレス)</code> </td><td valign="top" width="20%">&ndash;
290 <br></td></tr><tr align="left"><td valign="top" width="25%">ポップ <br> POP </td><td valign="top" width="10%"><code>POP</code> </td><td valign="top" width="15%"><code>r</code> </td><td valign="top" width="30%"><code>r ← ( (SP) )</code>, <br> <code>SP ← (SP) +L 1</code> </td><td valign="top" width="20%">&ndash;
291      <br></td></tr></table>
292
293      <li>コール、リターン命令
294      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
295 <br></th></tr><tr align="left"><td valign="top" width="25%">コール <br> CALL subroutine </td><td valign="top" width="10%"><code>CALL</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>SP ← (SP)-L 1</code>, <br> <code>(SP) ← (PR)</code>, <br> <code>PR ← 実効アドレス</code> </td><td valign="top" width="20%">&ndash;
296 <br></td></tr><tr align="left"><td valign="top" width="25%">リターン <br> RETrun form subroutine </td><td valign="top" width="10%"><code>RET</code> </td><td valign="top" width="15%"></td><td valign="top" width="30%"><code>PR ← ( (SP) )</code>, <br> <code>SP ← (SP) +L 1</code> </td><td valign="top" width="20%">&ndash;
297      <br></td></tr></table>
298
299      <li>その他
300      <p><table summary=""><tr align="left"><th valign="top" width="25%">命令 </th><th valign="top" width="10%">書き方 <br> 命令コード </th><th valign="top" width="15%">書き方 <br> オペランド </th><th valign="top" width="30%">命令の説明 </th><th valign="top" width="20%">FRの設定
301 <br></th></tr><tr align="left"><td valign="top" width="25%">スーパーバイザコール <br> SuperVisor CALL </td><td valign="top" width="10%"><code>SVC</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%">実効アドレスを引数として割出しを行う。実行後の<code>GR</code>と<code>FR</code>は不定となる。 </td><td valign="top" width="20%">&ndash;
302 <br></td></tr><tr align="left"><td valign="top" width="25%">ノーオペレーション <br> No operation </td><td valign="top" width="10%"><code>NOP</code> </td><td valign="top" width="15%"></td><td valign="top" width="30%">何もしない。 </td><td valign="top" width="20%">&ndash;
303      <br></td></tr></table>
304       </ol>
305
306      <ul>
307 <li>注
308           <dl>
309 <dt><code>r</code><dfn>, </dfn><code>r1</code><dfn>, </dfn><code>r2</code><dd>いずれも <code>GR</code>を示す。指定できる<code>GR</code>は<code>GR0</code>~<code>GR7</code>
310
311           <br><dt><code>adr</code><dd>アドレスを示す。指定できる値の範囲は<code>0</code>~<code>65535</code>
312
313           <br><dt><code>x</code><dd>指標レジスタとして用いる<code>GR</code>を示す。指定できる<code>GR</code>は<code>GR1</code>~<code>GR7</code>
314
315           <br><dt><code>[ ]</code><dd>[ ]内の指定は省略できることを示す。
316
317           <br><dt><code>( )</code><dd>( )内のレジスタ又はアドレスに格納されている内容を示す。
318
319           <br><dt><code>実効アドレス</code><dd><code>adr</code>と<code>x</code>の内容との論理加算値又はその値が示す番地
320
321           <br><dt><code>←</code><dd>演算結果を、左辺のレジスタ又はアドレスに格納することを示す。
322
323           <br><dt><code>+L</code><dfn>, </dfn><code>-L</code><dd>論理加算、論理減算を示す。
324
325           <br><dt><code>FR</code><dfn>の設定</dfn><dd>
326                <ul>
327 <li>○: 設定されることを示す。
328 <li>ー: 実行前の値が保持されることを示す。
329 </ul>
330           </dl>
331      </ul>
332
333 </body></html>
334
335 <!--
336 \1f
337 Local Variables:
338 coding: utf-8
339 End:
340
341 -->