みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

CASLの問題です。

初めての投稿です。

「アセンブラ言語を用いて掛け算をしなさい。」
という問題です。

調べてもわからないのでロジックと解説をお願いします!!

投稿日時 - 2001-01-28 21:22:06

QNo.33630

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

一応プログラマです。回答じゃないです。

「調べてもわからないので」だそうですが、CASLって参考書が大量にありますよね?問題集だってあるしその回答だってあります。
検索サイトで「CASL」「掛け算」で検索したら一発でヒットするんですが、本当に検索されました?

宿題って自分でやる事に意味があるんですよね?他人にやってもらって高得点取っても意味ないですよ。

投稿日時 - 2001-01-29 07:51:38

ANo.2

命令の使い方など、非常に自信ありませんがこんな風にすれば
できたのではないでしょうか。情報処理試験の改訂により、
CASLの仕様も変わりましたが、私は新しいのは知りません。

START
LD GR1,ZERO ;初期化
LD GR2,KAZU2 ;何回足し込むか
LOOP ADD GR1,KAZU1 ;数1をGR1に足す
SUB GR2,ICHI ;足し込む回数のカウンタ-1
JNZ LOOP ;カウンタ0でなければループ
ST GR1,ANS ;答えをANSにストア
ZERO DC 0 ;初期化用
ICHI DC 1 ;定数
KAZU1 DC 5 ;5×6をする
KAZU2 DC 6
ANS DS 1 ;答え格納領域
END

CASLシュミレータなどのソフトや、情報処理技術者試験の
参考書などを参考にされた方がよいと思います。
宿題なら、もう少しご自分で調べられた方がよいと思いますよ。

(tabが上手くいかなかったので、適当にスペースをいれてください。)

投稿日時 - 2001-01-29 00:25:46

ANo.1

CASLのような仮想言語の場合、実際のニーモニックを憶えていないので、ちゃんとしたコーディングで答える事ができませんが、

単純な方法は、掛ける回数だけ足す。
高等な方法は、2の何乗かを調べて、シフト命令を使って、その分の計算を行い、足りない分は加算する。

例えば、6×5の場合、

□6を5回加算する
□5は、2の2乗+1なので、6を2ビットレフトシフトして(6×4)、から6を1回加算します。

といった方法を使うと思います。

投稿日時 - 2001-01-28 22:17:46

補足

あのぉ、ロジックはどのようなものになりますか?
情報処理技術者試験程度の答えをお願いします。
レポートなんですが全く、手がつけれないのです。
よろしくお願いします。

投稿日時 - 2001-01-28 22:20:50

あなたにオススメの質問