• ベストアンサー

教えてください

2週間ほど前にy-papaで質問したものですがstingrayさん,P2B-Bさんに厳しいご指摘をいただきました。その後同じ講義を取っている友人たちに聞いて何とかできたのですが,以下の質問のみ私の周りの友達もできず困っています。ぜひ教えてください。 問題:記憶領域100および104番地に記憶されているデータを加算した結果を110番   に記憶するプログラムをCASLを用いて記述せよ。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.4

不完全な問題から解答を作るなんてパズルです。 ADDER START LAD GR0,0 ST GR0,SUM ;SUM=0 LAD GR0,105 ;END ADDRESS ST GR0,DATA ;SET END ADDRESS LAD GR1,100 ;COUNT=100 LOOP LD GR0,0,GR1 ADDA GR0,SUM ST GR0,SUM LAD GR1,1,GR1 ;COUNT+1 CPA GR1,DATA JNZ LOOP ;IF COUNT<>END ADDRESS ST GR0,110 ;STORE RESULT RET SUM DS 1 DATA DS 1 END ばかばかしいほど冗長になりますが、あえてご希望のラベルを組み込むとこんなになります。

y-papa2
質問者

お礼

ありがとうございます。 とても助かりました。 明日学校で友達ともう一度ntaさんがやってくださったことを元に検討してみます。 もう一つだけよろしいですか? http://www.cqpub.co.jp/dwm/contents/0037/dwm003700260.pdfのページにある表2-1全加算器の真理値表は4ビット全加算器のことをいっているのですよね。 今回の課題の中に1ビット全加算器についての、真理値表と回路図を書くものがあるのですが先輩たちは図2-1、表2-1を書いて置けばよいといっていたのですが僕にはどう考えても4ビットの全加算器に見えてしまうのですが僕の考え方は間違えていますか?

その他の回答 (5)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.6

2.1.1に書かれている文書をお読みになっているとしたら、どうしてそのような質問が出てくるのか不思議です。「表2.1は全加算器の真理値表」「図2.1は4ビット全加算器」と書いてあり、表はAi,Biとなっており図はA1,B1,A2…となっているではありませんか。

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.5

この図は4ビット全加算器です。1ビット分であれば、この中の一つのブロックです。 URL参照。

参考URL:
http://www.cs.shinshu-u.ac.jp/Lecture/LogicCirc/chap9/chap9.html
y-papa2
質問者

補足

9.2.2の一番下の書いてあるのが1ビットの全加算器の回路図になるということですよね。真理値表に関しては1ビットであっても4ビットであっても変わらないということですか?

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.3

>ノートを見るとラベル,コード,オペランド とは何か? というご質問ですが、アセンブラでは非常に基本的な部分です。これを理解していないと1行たりともプログラムを書くことはできません。 先ほどの例で言えば  行の先頭からADDER と書かれた文字列はその行の場所を示す、ラベルです。これは予約語以外の任意の文字列を書くことができます。LOOPやDATA,SUMというのもおそらくラベルです。  コード(あるいはオペコード)はLD 、ADDA , ST のような実行するべき命令を表します。  さらにオペランドはコードに引き続き書かれる、レジスタやデータを表す文字列です。すなわちプログラムの各行は ラベル  コード  オペランド の順で構成されています。 「記憶領域100および104番地に記憶されているデータ」 という部分が 「記憶領域100から104番地に記憶されている(すべての)データ」 と書かれているのであれば分岐命令を使うのもやぶさかではないので(使う方が計算が遅くなるので本当は使いたくない)あるいはSUM,LOOPが登場する可能性はあります。とにかく先生に確認してみることでしょう。

参考URL:
http://ww3.tiki.ne.jp/~tno2/shikaku/casl_content.htm
y-papa2
質問者

補足

本当でしたら先生に聞きたいところなのですが,国外に行ってしまいどんな手段をとっても(友達に聞いても,調べても)よいという条件で課題が課せられました。 今回のこの問題に関しては私の知っている範囲での友達や先輩に聞いたのですが分からずにここのサイトを使わせてもらっています。 分岐命令を使ったやり方を教えていただけないでしょうか?

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

書き込まれている問題自体が間違っているとしか思えません。y-papa2が問題の意味をよく理解してから不明な部分を再質問するべきでしょう。

y-papa2
質問者

補足

先生から出された問題をそのまま書いているので,問題上の間違いはないと思います。でもノートを見るとラベル,コード,オペランドとかあるのですがそのことなんですか?

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

ADDER START LD GR0,100 ADDA GR0,104 ST GR0,110 END で終わりだと思うのですが、何か質問の意味を取り違えているのでしょうか。

y-papa2
質問者

補足

先生から言われているのにはA4にまとめてくるようにということと,授業ではLOOPやDATA,SUMなどを使っているのでせが,それらの用語を使ったやり方もありますか?

関連するQ&A

専門家に質問してみよう