A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>実行は出来たのですが、GR3に入る値が1235になってしまいます。
>どこを直せばいいのでしょうか?
全部。
なんてシミュレータで実行したら 1235になったのでしょうか?
InfoCASL Home Page
http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/in …
で試したら異常終了しましたよ。
まあシミュレータのバグという話もなくはありませんが、
少なくとも
・ループ回数の判定がない
CPA GR2,GR3 で、レジスタに入っている値は
それぞれ何?
・レジスタの値を十倍する部分がおかしい
GR1を十倍にしようとしている?
・問題では文字列の '123' を数値化するように書かれているのに
DC で置かれているのは数値の1,2,3
もっとも、文字を数値にする('0'を引く)ことを
していないのである意味つじつまは合ってますが。
あたりをもう一度考え直した方がよいかと。
No.1
- 回答日時:
(1)は、文字コードから48(0の文字コード)を引き算すればいいですね。
(2)は、ループの前にGR0からGR7のどれかのレジスタに3を代入しておく。で、ループの最後でレジスタから1を引き算して、その結果が0以上であれば、ループの先頭に戻る。例えばこんな感じ
LAD GR0, 3
LOOP ループここから
…
ここまで
SUBL GR9, =1
JNZ LOOP
(3)は、与えられた数の10倍を計算するルーチンが必要です。CASLIIに掛け算の命令はないので、8倍したものと2倍したものを足し算します。こんな感じ。GR0に入っている数字を10倍します。
SLL GR0, 1
LD GR1, GR0
SLL GR0, 2
ADDL GR0, GR1
この回答への補足
無料のシュミレータを見つけることができ、作ってみたのですがやはりよくわかりません。
TEN START BGN
TBL DC 1,2,3
BGN LAD GR2,0
LAD GR3,0
LOOP LD GR1,TBL,GR2
ADDA GR1,GR3
SLL GR1,1
LD GR1,GR2
SLL GR1,2
ADDA GR1,GR2
LD GR3,GR1
LAD GR2,1,GR2
CPA GR2,GR3
JPL LOOP
ADDA GR3,TBL,GR3
RET
END
実行は出来たのですが、GR3に入る値が1235になってしまいます。
どこを直せばいいのでしょうか?
ありがとうございます。
頑張ってみます。
学校でCASLIIシュミレータというソフトを使っているのですが、
こういったソフトは有料でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Ruby プログラミング 3 2023/06/09 14:30
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Java Java 南京錠 2 2023/02/04 11:46
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- 統計学 確率統計の問題です。 3 2022/04/07 04:39
- 高校 変数置き換えにつきまして 6 2022/05/01 16:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
DOSコマンドのループ内のTIMEコ...
-
UWSCの終了の仕方
-
どうしたら過去を忘れることが...
-
vbscriptでIE自動入力(途中で...
-
C#で別のフォームのprogress ba...
-
エクセルの当番表を作っていま...
-
寝ても寝ても眠くて困ってます...
-
CSVファイルの特定の行だけを読...
-
VBAでForループを抜けるためには?
-
エクセル関数で1〜12の数字がル...
-
範囲指定したセルを1つずつ飛...
-
乱数の桁数指定、または範囲指定。
-
vb.netです。2次元配列の要素を...
-
GIFアニメをループさせたくない
-
繰り返し処理で50音順にする方法
-
正しいWebBrowserの使い方(ル...
-
ループ内での条件処理
-
VBAでの一時停止と再開の方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
どなたかこのプログラミングを...
-
VBAでの一時停止と再開の方法
-
VBA for i=1 to lastrow
-
UWSCの終了の仕方
-
DoEventsが必要な理由について
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
-
GIFアニメをループさせたくない
-
Escキーを押すと、中断する時と...
-
DOSコマンドのループ内のTIMEコ...
-
CSVファイルの特定の行だけを読...
-
アクティブセルから、A列最終行...
-
vb.netからエクセル関数書き込み
-
範囲指定したセルを1つずつ飛...
-
テキストボックスの名前に変数...
-
乱数の桁数指定、または範囲指定。
-
「偶数・奇数の和」のフローチ...
-
vbscriptでIE自動入力(途中で...
おすすめ情報