• 締切済み

CASLIIのプログラム(並び替え)について

CASLIIのプログラミングで直接選択ソートまたはバブルソートを用いた1~5までの数字の大きい順に並び替え、というものがあります。C言語でしたらわかるのですがCASLIIだといまいちわかりません。直接選択ソート、バブルソートの原理はわかるのですが。 CASLIIのプログラムの形で答えを教えてください。なおプログラムは部分的に        START   BGN BGN          RET DATA    DC    1,4,3,2,5         END となっています。 よろしくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

#5>アドバイスをお願いします 色々まずいところがあります。 ちょっと修正してみました。 比べて見て下さい。 ---------------------------------------------------------------- BSORT START BGN BGN LAD GR2,5 LAD GR3,-1 LAD GR4,0 LOOP1 LAD GR3,1,GR3 CPL GR2,GR3 JZE FIN LD GR0,DATA,GR3 LAD GR4,0,GR3 LOOP2 LAD GR4,1,GR4 CPL GR2,GR4 JZE LOOP1 LD GR1,DATA,GR4 CPL GR0,GR1 JMI SWAP JUMP LOOP2 SWAP ST GR1,DATA,GR3 ST GR0,DATA,GR4 LD GR0,GR1 JUMP LOOP2 FIN RET DATA DC 1,4,3,2,5 END

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

#4>ありません・・・ http://www.jitec.jp/ からのダウンロードでしょうか 今確認してみたら、バージョンが上がっているのですね。 すみませんでした。 私の持っているのは、v1.03 です。 なんか説明がv1.03より手抜きになってますね。 では、(ホントはダメなような気がしますが)「サンプルプログラムの説明.txt」から部分引用 ---------------------------------------------------------------- 1)smain.cas count1.cas 「アセンブラ言語の仕様」のサンプル・プログラムの メイン と 副プログラム。 アセンブルと実行 >casl2 smain >casl2 count1 >run smain ---------------------------------------------------------------- casl2 でそれぞれobj を作ります。 run でメインモジュールを指定すると、必要なモジュールがリンク実行されます。 ver2 自体は、持ってないので細部は違うかもしれません。 ver2 の説明をお読み下さい。

133sghost
質問者

お礼

ありがとうございます。 http://www5a.biglobe.ne.jp/~teamcasl/ からのダウンロードなんですが・・・ 自分なりにプログラムを作ってみました。 START BGN BGN LAD GR2,5 LAD GR3,-1 LAD GR4,0 LAD GR5,1 LOOP1 CPL GR2,GR4 JZE FIN LAD GR2,-1,GR2 LAD GR3,1,GR3 LAD GR0,DATA,GR3 LAD GR4,0,GR3 LOOP2 LAD GR4,1,GR4 CPL GR2,GR4 JMI LOOP1 LD GR1,DATA,GR4 CPL GR0,GR1 → JMI LOOP2 LD GR2,GR0 ST GR1,DATA,GR3 ST GR0,DATA,GR4 JUMP LOOP2 FIN RET DATA DC 1,4,3,2,5 END なぜか矢印のところでLOOP2にすべて戻ってしまい、並び変わったデータが書き込まれません。アドバイスをお願いします。(プログラムが非常に見にくくてすみません)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>おそらくそうだと思います。 >そうなると,プログラムはどの様になるのでしょうか? >副プログラムが使えないわけですのでプログラム中にSTART、ENDは1つになるのでしょうか? インストールしたフォルダに 「サンプルプログラムの説明.txt」 があると思いますが、 これを読めば 副プログラムが有る場合のコンパイルと実行の仕方が分かると思います。

133sghost
質問者

お礼

返答ありがとうございます。 >インストールしたフォルダに >「サンプルプログラムの説明.txt」 >があると思いますが、 ありません・・・

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>END命令の前に複数のSTART命令がある。またはSTART命令がないのにEND命令がある。 java のCASL2シミュレーターをお使いでしょうか? あれは、1つ1つのモジュール(1つのソースに1つのモジュール)でないと実行できませんよ。

133sghost
質問者

お礼

おそらくそうだと思います。 そうなると,プログラムはどの様になるのでしょうか? 副プログラムが使えないわけですのでプログラム中にSTART、ENDは1つになるのでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>うまく作動しませんでした。なぜでしょうか? なぜでしょうと言われても・・ とりあえず、ウチで試したところではちゃんと動作しますし。 #1>直接選択ソート C言語でわかるのだったら、 概ね、#1の参照先プログラムでCASLでの書き方は分かると思うけど・

133sghost
質問者

お礼

アセンブルの結果、表示されるエラーメッセージは END命令の前に複数のSTART命令がある。またはSTART命令がないのにEND命令がある。 というものです。 確かに構造としてはきちんとしていますし、バブルソートの形になっていますが・・・

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

CASL2 でのバブルソートは、 http://okwave.jp/kotaeru.php3?qid=1969601 が参考になると思います。

133sghost
質問者

お礼

返答ありがとうございます。上記ページは知っておりましたがうまく作動しませんでした。なぜでしょうか? どちらかといえば直接選択ソートのほうを探しているのですが、ご存じないでしょうか。

関連するQ&A