• 締切済み

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

  • CASLIIの問題で困っています

    最近学校でCASLIIを情報の時間に習ったのですが、さっぱり意味が分かりません。 CASLIIの命令、オペランドが表している意味を詳しく解説願います。 カテゴリ間違っていたらごめんなさい! 論理演算プログラム   ラベル    命令     オペランド REI1003   START             LD       GR1,DATA1          OR       GR1,DATA2          LD       GR1,DATA1          AND      GR1,DATA2          LD       GR1,DATA1 XOR GR1,DATA2 RET DATA1 DC #5AOF DATA2 DC #FOFO END 解答お願いします!!><

  • CASLIIのプログラムで開発ができるの?

    基本情報処理技術者試験の午後のプログラム選択問題にCASLII(過去はCASLだったけど) そのアセンブラ言語なんぞで、何か新規開発ができるのでしょうか? C言語、Java、COBOLなら、色々な会社で開発してることはよ耳にしますが、CASLIIで開発してる とは耳にしたことがありません。もしもCASLIIで開発ができないのなら何の為に午後のプログラム言語問題にあるのでしょうか?それも知ってる方が居たら教えていただきたくて質問しました。 お願い致します。

  • CASLIIのADDAとADDLの演算

    次の問題があっているのかわかりません。 次のCASLIIプログラムの実行後のレジスタ(GR1,FR)とメモリ(AA,BB,CC番地) の内容を16進表示および符号付き10進表示せよ。 PGM START LD GR1,AA ADDA GR1,BB ST GR1,CC RET AA DC 32767 BB DC 1 CC DS 1 END 32767をGR1に入れて、1加算する。 だからGR1 = 32768 と思ったのですが、先生の書いた答えは -32768 でした。 PGM START LD GR1,AA ADDL GR1,BB ST GR1,CC RET AA DC #7FFF BB DC 1 CC DS 1 END #7FFFに1加算するので GR1=#8000 だと思います。 また自分で書いた板書に Arithmetic[ -32768, 32767](#8000,#7FFF) Logical[0,65535](#0000,#FFFF) とありました。 板書をとったのがだいぶ前なのでこれの意味をよく覚えていないのですが、 ADDA命令のときに扱える値の範囲は-32768,~32767 ADDL命令のときに扱える値の範囲は0~65535 ということなのでしょうか。 その場合、先ほどの問題のADDAの問題で 32767 + 1 をしたら範囲を超えてしまいます。 このような場合どうなるのでしょうか? ADDLの場合も範囲を超えてしまったらどうなるのですか? よろしくお願いします。

  • CASLIIのFINについて教えて下さい

    CASLIIの『FIN』とはどんなときに使うのか、どんな意味があるのか教えて下さい。下の2個の例のように、JUMPでFINに飛んだり、単なるラベルであったりしています。 ;100を初めて超える7の倍数 LAD GR1,0 LOOP CPA GR1,C1000 JPL FIN LAD GR1,7,GR1 JUMP LOOP FIN ST GR1,ANS RET C100 DC 100 ANS DS 1 END ;1000を16ビットの2進数で表した時1が立っている数 LAD GR1,0 LAD GR2,1 LOOP LD GR3,C1000 AND GR3,GR2 JZE ZEXT LAD GR1,1,GR1 NEXT SLL GR2,1 JNZ LOOP FIN ST GR1,ANS RET C1000 DC 1000 ANS DS 1 END

  • CASLIIの問題

    次のプログラムに、 指定された整数値配列の中から最大値を調べるサブルーチンMAXを作成する、 指定された整数値配列の中から最小値を調べるサブルーチンMAXを作成する、 指定された整数値配列を昇順にソートするサブルーチンSORTを作成する、 指定された整数値配列の平均値(整数値)を調べるサブルーチンAVEを作成する、 これらについて教えてください。 PGM START LAD GR1, DATA LD GR2, =10 CALL SUM ST GR0, RESULT RET DATA DC 1,9,3,7,5,10,2,8,4,6 RESULT DS 1 END SUM START PUSH 0, GR1 PUSH 0, GR7 LD GR0, =0 LD GR7, =0 MAIN CPA GR7, GR2 JZE QUIT ADDA GR0, 0, GR1 LAD GR1, 1, GR1 LAD GR7, 1, GR7 JUMP MAIN QUIT POP GR7 POP GR1 RET END GR1はデータの先頭番地、SUMをコールするとGR1が1ずつ加算されてデータが参照できる。 GR2はデータの個数、ラベルMAINで個数を比較している。 などのことはわかるのですが、 プログラムを作るとなるとまったくわかりません。 どなたか教えていただけませんか?? お願いします!!

  • CASLII

    CASLII勉強中です。 ビットマップ図形の縮小の例題を解いているのですが、 07~09行目で第15ビット目が1であるか調べという意味がわかりません。 07.08.09行目の意味を教えてください。 07行目は何をしているのでしょうか?08.09行目は1行ではなく、なぜ 1ビットの判定となるのでしょうか? 01 ZUKEI01 START 02      LD   GR1,=0 03      LD   GR3,=0 04 LP1   LD   GR2,=0 05      LD   GR4,BIGZU,GR1 06      LD   GR5,=8 07 LP2   LD   GR4,GR4 08      JPL   SKIP 09      JZE   SKIP 10      LAD   GR2,1,GR2 11 SKIP   SLL   GR2,1 12      SLL   GR4,2 13      SUBA   GR5,=1 14      JPL   LP2 15      SLL   GR2,7 16      ST    GR2,SMLZU,GR3 17      LAD   GR3,1,GR3 18      LAD   GR1,2,GR1 19      CPA   GR1,N16 20      JNZ   LP1 21      RET 22 N16    DC   16 23 BIGZU   DC   #F00F,#F00F 24       DC   #781E,#781E 25       DC   #3C3C,#3C3C 26       DC   #1E78,#1E78 27       DC   #0FF0,#0FF0 28       DC   #0FF0,#0FF0 29       DC   #07FF,#03FF 30       DC   #01FF,#00FF 31 SMLZU   DS    8 32       END 33

  • CASLII:メモリの値について

    LESSON3_8_2 START ; FFFFから0FFFを論理減算 LD GR1,CFFFF ;FFFFをロード SUBL GR1,C0FFF ;FFFF-0FFF ST GR1,ANS ;結果をANSに格納 RET CFFFF DC #FFFF C0FFF DC #0FFF ANS DS 1 END 1週間で分かる集中ゼミ【CASLII】P.274より抜粋 以上のように、演習問題の解答例があったのですが下から4行目と3行目のCFFFFとC0FFFのメモリの値は存在しないのではないでしょうか?COMETIIの場合、アドレスとして0000~FFFFまでの値しか使用できないと習ったのですが…

  • CASLIIの問題が分かりません。

    資格の勉強のためCASLIIの参考書を買い問題を解いてるのですが分からないので質問します。 4桁の16進文字列を入力し、それを数値に変換してメモリ上に格納するプログラム。 SAMPL16 START LD GR1,0BUF LD GR0,=1000 CALL REVESUB OUT OBUF,LEN LET OBUF DS 4 LEN DC 1 ANS DS 1 END REVESUB START PUSH 0,GR1 PUSH 0,GR2 PUSH 0,GR3 PUSH 0,GR4 LAD GR0,0 LAD GR2,0 LOOP SLL GR0,4 ;ここまでの結果を4ビット左シフト LD GR3,0,GR1 ;1文字取り出し CPL GR3,='A' JMI NEXT ADDL GR3,=9 NEXT AND GR3,C000F ADDL GR0,GR3 LAD GR1,1,GR1 LAD GR2,1,GR2 CPL GR2,=4 JMI LOOP POP GR4 POP GR3 POP GR2 POP GR1 RET C000F DC #000F END SLL GR0,4 で4ビットシフトする意味がわかりません。あとLD GR3,0,GR1で1文字だけ取り出せるのですか?取り出すのは下位からですか?

  • CASLIIで…

    START IN N,LEN LD GR0,N SUBA GR0,='0' LAD GR1,1 TOP CPA GR1,GR0 JPL FIN ST GR1,LEN OUT STR,LEN ADDA GR1,=1 JUMP TOP FIN RET LEN DS 1 STR DC '**********' N DS 256 END ってのがありまして、Nが9以下の時は三角形が * ** *** : : ******** ********* と表示されるのですが、Nに10以上を入力すると 正しく表示されません 10以上でも表示されるようにするにはどうしたらいいですか?

  • CASLIIの解説

    以下のような問題があり、解答がありますが理解できません。 すみませんが、どなたか解説をお願いします。 ---------------------------------------------------------- ■問題  10進数の「5×20」の結果を求め、その結果をメモリに格納するプログラムを作成せよ。ただし、「5×20」の数を他の数に置き換えた時も掛け算が行えるプログラムにすること。 ■解答  SAMPLE START LAD GR1,0 LAD GR2,1 LD GR3,=5 LOOP LD GR4,C20 AND GR4,GR2 JZE NEXT ADDA GR1,GR3 NEXT SLA GR3,1 SLL GR2,1 JNZ LOOP ST GR1,ANS RET C20 DC 20 ANS DS 1 END

このQ&Aのポイント
  • Microsoft Office Home & Business 2021がついているはずなのですが、ExcelやWordのアイコンが見当たりません。その代わりなのか、Office365が入っていました。
  • せっかくMicrosoft Office Home & Business 2021付きのものをかったのでoffice365ではないものを使いたいのですが方法をご存じないでしょうか。
  • 質問者はMicrosoft Office Home & Business 2021のアイコンが表示されておらず、代わりにOffice365のアイコンが表示されていることに困っています。製品に含まれるOfficeのバージョンを正しく使いたいと考えています。解決策を教えてください。
回答を見る

専門家に質問してみよう