アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

       START   BGN
BGN  


       RET
DATA    DC    1,4,3,2,5
        END

となっています。
よろしくお願いします。

A 回答 (6件)

#5>アドバイスをお願いします


色々まずいところがあります。
ちょっと修正してみました。
比べて見て下さい。
----------------------------------------------------------------
BSORT START BGN
BGNLAD GR2,5
LAD GR3,-1
LAD GR4,0
LOOP1LAD GR3,1,GR3
CPL GR2,GR3
JZE FIN
LD GR0,DATA,GR3
LAD GR4,0,GR3
LOOP2LAD GR4,1,GR4
CPL GR2,GR4
JZE LOOP1
LD GR1,DATA,GR4
CPL GR0,GR1
JMI SWAP
JUMP LOOP2
SWAPST GR1,DATA,GR3
ST GR0,DATA,GR4
LD GR0,GR1
JUMP LOOP2
FINRET
DATADC1,4,3,2,5
END
    • good
    • 0

#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 の説明をお読み下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
http://www5a.biglobe.ne.jp/~teamcasl/ からのダウンロードなんですが・・・

自分なりにプログラムを作ってみました。

START BGN
BGNLAD GR2,5
LAD GR3,-1
LAD GR4,0
LAD GR5,1
LOOP1CPL GR2,GR4
JZE FIN
LAD GR2,-1,GR2
LAD GR3,1,GR3
LAD GR0,DATA,GR3
LAD GR4,0,GR3
LOOP2LAD 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
FINRET
DATADC 1,4,3,2,5
END

なぜか矢印のところでLOOP2にすべて戻ってしまい、並び変わったデータが書き込まれません。アドバイスをお願いします。(プログラムが非常に見にくくてすみません)

お礼日時:2006/08/21 16:46

>おそらくそうだと思います。


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

返答ありがとうございます。

>インストールしたフォルダに
>「サンプルプログラムの説明.txt」
>があると思いますが、

ありません・・・

お礼日時:2006/08/12 18:11

#2>END命令の前に複数のSTART命令がある。

またはSTART命令がないのにEND命令がある。
java のCASL2シミュレーターをお使いでしょうか?
あれは、1つ1つのモジュール(1つのソースに1つのモジュール)でないと実行できませんよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/07 15:55

#1>うまく作動しませんでした。

なぜでしょうか?
なぜでしょうと言われても・・
とりあえず、ウチで試したところではちゃんと動作しますし。

#1>直接選択ソート
C言語でわかるのだったら、
概ね、#1の参照先プログラムでCASLでの書き方は分かると思うけど・
    • good
    • 0
この回答へのお礼

アセンブルの結果、表示されるエラーメッセージは

END命令の前に複数のSTART命令がある。またはSTART命令がないのにEND命令がある。

というものです。
確かに構造としてはきちんとしていますし、バブルソートの形になっていますが・・・

お礼日時:2006/08/05 23:36

CASL2 でのバブルソートは、


http://okwave.jp/kotaeru.php3?qid=1969601
が参考になると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/04 16:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!