<h2 class="chapter">1 YACASL2の概要</h2>
-<p>YACASL2は、Linux上で動作するオープンソースのCASL II処理系です。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。
+<p>YACASL2は、UNIX/Linuxのコマンドラインインターフェイスで動作するオープンソースのCASL II処理システムです。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。
<blockquote>
<a href="http://www.jitec.ipa.go.jp/1_00topic/topic_20081027_hani_yougo.pdf">試験で使用する情報処理用語・プログラム言語など(2008年10月版)</a>[PDFファイル]
<p>YACASL2は、LinuxやMac OS Xなど、UNIX系のOS上で動作します。現在動作を確認しているのは、次の環境です。
<ul>
-<li>Ubuntu Linux 10.10
+<li>Ubuntu Linux 10.04
- <li>Vine Linux 4.2
+ <li>Vine Linux 5.2
- <li>Mac OS X 10.6
+ <li>Mac OS X 10.6.5
</ul>
<p>インストール時に、<kbd>tar</kbd>、<kbd>gcc</kbd>、<kbd>make</kbd>が必要です。Linuxの場合は、標準でインストールされていることが多いと思います。Mac OS Xの場合、<code>Xcode</code>をインストールしてください。
<p>次のコマンドを実行すると、正常にビルドできているかどうかを詳細にテストできます。
<pre class="example"> $ <kbd>make check</kbd>
- 194 / 194 tests passed. Details in /home/kazubito/yacasl2/test/integra
+ 195 / 195 tests passed. Details in /home/username/yacasl2/test/integra
tion/casl2/Test.log
All tests are succeded.
- 149 / 149 tests passed. Details in /home/kazubito/yacasl2/test/integra
+ 149 / 149 tests passed. Details in /home/username/yacasl2/test/integra
tion/comet2/Test.log
All tests are succeded.
- 4 / 4 tests passed. Details in /home/kazubito/yacasl2/test/integration
+ 4 / 4 tests passed. Details in /home/username/yacasl2/test/integration
/dumpword/Test.log
All tests are succeded.
</pre>
MAIN START
OUT OBUF,LEN
RET
- OBUF DC ’Hello, World!’
+ OBUF DC 'Hello, World!'
LEN DC 13
END
</pre>
<br><dt><samp><span class="option">-O[<OBJECTFILE>]</span></samp><dt><samp><span class="option">--assembleoutonly[<OBJECTFILE>]</span></samp><dd>アセンブル結果をオブジェクトファイル<samp><span class="file"><OBJECTFILE></span></samp>に出力し、終了します。出力されたオブジェクトファイルは、<kbd>comet2</kbd>で実行できます。オブジェクトファイルを指定しない場合、出力先は<samp><span class="file">a.o</span></samp>です。オブジェクトファイルは1つだけ指定できます。
- <br><dt><samp><span class="option">-t</span></samp><dt><samp><span class="option">--trace</span></samp><dt><samp><span class="option">--tracearithmetic</span></samp><dd>プログラム実行中のレジスタの値を次の形式で表示します。<code><値の10進数表現></code>は符号の付いた10進数です。範囲は-32768から32767です。
+ <br><dt><samp><span class="option">-t</span></samp><dt><samp><span class="option">--trace</span></samp><dt><samp><span class="option">--tracearithmetic</span></samp><dd>プログラム実行中のレジスタの値を次の形式で表示します。
- <pre class="example"> <PR値の16進数表現>: <レジスタ>: <値の10進数表現> = <値の16進数表現> = <値の2進数表現>[ ='文字']
+ <pre class="example"> <PR値の16進数表現>: <レジスタ>: <値の10進数表現> =
+ <値の16進数表現> = <値の2進数表現>[ ='文字']
</pre>
<ul>
-<li><code><PR値の16進数表現></code>と<code><値の16進数表現></code>は、先頭に<code>#</code>が付いた4けたの16進数で表されます。範囲は、<code>#0000</code>から<code>#FFFF</code>です
+<li><code><PR値の16進数表現></code>と<code><レジスタ></code>、<code><値の16進数表現></code>は、4けたの16進数で表されます。<code><PR値の16進数表現></code>と<code><値の16進数表現></code>には、先頭に<code>#</code>が付きます。範囲は<code>#0000</code>から<code>#FFFF</code>です
+
+ <li><code><値の10進数表現></code>は符号の付いた10進数です。範囲は-32768から32767です。
<li><code><値の2進数表現></code>は、16けたの2進数で表されます。範囲は、<code>0000000000000000</code>から<code>1111111111111111</code>です
A DC -1
END
</pre></pre>
-<pre class="example"> $ <kbd>casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl
+<pre class="example"> $ <kbd>casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl \
$CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl</kbd>
1
</pre>
ELEN DC 5
END
</pre></pre>
-<pre class="example"> $ <kbd>casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl
+<pre class="example"> $ <kbd>casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl \
$CASL2LIBDIR/outa.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/rev.casl</kbd>
-128
-127
ELEN DC 5
END
</pre></pre>
-<pre class="example"> $ <kbd>casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl
+<pre class="example"> $ <kbd>casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \
$CASL2LIBDIR/rev.casl</kbd>
256
254
ELEN DC 5
END
</pre></pre>
-<pre class="example"> $ <kbd>casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl
+<pre class="example"> $ <kbd>casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \
$CASL2LIBDIR/rev.casl</kbd>
256
254