dポイントプレゼントキャンペーン実施中!

CASLIIの勉強をしているのですが穴埋めの問題がどうしても解けません。
参考書の例題やサイトで公開されてるサンプルなどと比較して考えて
自分なりに答えは出してみたのですがシュミレータを試してみた所間違ってました。
この問題を考え始めてからもう一週間になりますが
解答がないので未だに解けず時間ばかりが過ぎて困っています。
解答と解説を教えて頂けないでしょうか?

問題
図1のプログラムは、3種の文字「a」、「b」、「c」を組み合わせた、
長さが3の全ての文字列を、図2の順に出力する。
図1の(1)~(10)の空欄に適切なオペランドを入れてください。

図1
REP2 START
LD (1)
LAD GR1,0
LP1 CPA GR1,GR7
JZE (2)
LD GR0,CHAR,GR1
ST (3)
LAD GR2,0
LP2 CPA GR2,GR7
JZE (4)
LD GR0,CHAR,GR2
ST (5)
LAD GR3,0
LP3 CPA GR3,GR7
JZE (6)
LD GR0,CHAR,GR3
ST (7)
OUT (8)
LAD GR3,1,GR3
JUMP LP3
BRK3 LAD GR2,1,GR2
JUMP LP2
BRK2 LAD GR1,1,GR1
JUMP LP1
BRK RET
FIRST DS 1
SECOND DS 1
THIRD DS 1
CHAR DC (9)
LEN DC (10)
END

図2
aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc

A 回答 (1件)

*CASL2はかなり前に多少いじった程度で殆どマニュアルを読み直すはめになった


*一応IPAが公開しているCASL2のシミュレータで期待通りの結果を得た。
*http://www.officedaytime.com/dcaslj/index.htmlだと出力行数が多いせいで最初の数行が切られる
*GR7が離れて使われていたこともあって、GR4、GR5、GR6が隣接していると思い込んで、OUT命令に指定して嵌る。DS命令が「連続した領域」を確保するのか自信がなかったことも拍車を掛けた。動いたからいいや(おぃ。えーえー、私が悪いんですよぉorz

REP2 START
LD GR7,LEN
LAD GR1,0
LP1 CPA GR1,GR7
JZE BRK
LD GR0,CHAR,GR1
ST GR0,FIRST
LAD GR2,0
LP2 CPA GR2,GR7
JZE BRK2
LD GR0,CHAR,GR2
ST GR0,SECOND
LAD GR3,0
LP3 CPA GR3,GR7
JZE BRK3
LD GR0,CHAR,GR3
ST GR0,THIRD
OUT FIRST,LEN
LAD GR3,1,GR3
JUMP LP3
BRK3 LAD GR2,1,GR2
JUMP LP2
BRK2 LAD GR1,1,GR1
JUMP LP1
BRK RET
FIRST DS 1
SECOND DS 1
THIRD DS 1
CHAR DC 'abc'
LEN DC 3
END
    • good
    • 0
この回答へのお礼

ありがとうございました。
自分なりに出した答えはJZE命令とOUT命令が間違ってたみたいです。

お礼日時:2011/05/12 05:58

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