プロが教えるわが家の防犯対策術!

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

A 回答 (6件)

不完全な問題から解答を作るなんてパズルです。



ADDERSTART
LADGR0,0
STGR0,SUM ;SUM=0
LADGR0,105 ;END ADDRESS
STGR0,DATA ;SET END ADDRESS
LADGR1,100 ;COUNT=100
LOOPLDGR0,0,GR1
ADDAGR0,SUM
STGR0,SUM
LADGR1,1,GR1 ;COUNT+1
CPAGR1,DATA
JNZLOOP;IF COUNT<>END ADDRESS
STGR0,110 ;STORE RESULT
RET
SUMDS1
DATADS1
END

ばかばかしいほど冗長になりますが、あえてご希望のラベルを組み込むとこんなになります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/07/11 22:38

2.1.1に書かれている文書をお読みになっているとしたら、どうしてそのような質問が出てくるのか不思議です。

「表2.1は全加算器の真理値表」「図2.1は4ビット全加算器」と書いてあり、表はAi,Biとなっており図はA1,B1,A2…となっているではありませんか。
    • good
    • 0

この図は4ビット全加算器です。

1ビット分であれば、この中の一つのブロックです。
URL参照。

参考URL:http://www.cs.shinshu-u.ac.jp/Lecture/LogicCirc/ …

この回答への補足

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

補足日時:2002/07/12 22:32
    • good
    • 0

>ノートを見るとラベル,コード,オペランド



とは何か?
というご質問ですが、アセンブラでは非常に基本的な部分です。これを理解していないと1行たりともプログラムを書くことはできません。
先ほどの例で言えば
 行の先頭からADDER と書かれた文字列はその行の場所を示す、ラベルです。これは予約語以外の任意の文字列を書くことができます。LOOPやDATA,SUMというのもおそらくラベルです。
 コード(あるいはオペコード)はLD 、ADDA , ST
のような実行するべき命令を表します。
 さらにオペランドはコードに引き続き書かれる、レジスタやデータを表す文字列です。すなわちプログラムの各行は
ラベル  コード  オペランド
の順で構成されています。

「記憶領域100および104番地に記憶されているデータ」
という部分が
「記憶領域100から104番地に記憶されている(すべての)データ」
と書かれているのであれば分岐命令を使うのもやぶさかではないので(使う方が計算が遅くなるので本当は使いたくない)あるいはSUM,LOOPが登場する可能性はあります。とにかく先生に確認してみることでしょう。

参考URL:http://ww3.tiki.ne.jp/~tno2/shikaku/casl_content …

この回答への補足

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

補足日時:2002/07/11 20:40
    • good
    • 0

書き込まれている問題自体が間違っているとしか思えません。

y-papa2が問題の意味をよく理解してから不明な部分を再質問するべきでしょう。

この回答への補足

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

補足日時:2002/07/11 19:59
    • good
    • 0

ADDERSTART


LDGR0,100
ADDAGR0,104
STGR0,110
END
で終わりだと思うのですが、何か質問の意味を取り違えているのでしょうか。

この回答への補足

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

補足日時:2002/07/11 19:31
    • good
    • 0

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