![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下のような問題があり、解答がありますが理解できません。
すみませんが、どなたか解説をお願いします。
----------------------------------------------------------
■問題
10進数の「5×20」の結果を求め、その結果をメモリに格納するプログラムを作成せよ。ただし、「5×20」の数を他の数に置き換えた時も掛け算が行えるプログラムにすること。
■解答
SAMPLE START
LAD GR1,0
LAD GR2,1
LD GR3,=5
LOOP LD GR4,C20
AND GR4,GR2
JZE NEXT
ADDA GR1,GR3
NEXT SLA GR3,1
SLL GR2,1
JNZ LOOP
ST GR1,ANS
RET
C20 DC 20
ANS DS 1
END
No.1ベストアンサー
- 回答日時:
次のように行番号をつけてみました。
1: LAD GR1,0
2: LAD GR2,1
3: LD GR3,=5
4:LOOP LD GR4,C20
5: AND GR4,GR2
6: JZE NEXT
7: ADDA GR1,GR3
8:NEXT SLA GR3,1
9: SLL GR2,1
10: JNZ LOOP
11: ST GR1,ANS
CASLのレジスタは16bit長ですが,桁数が長くてめんどうなので8bit幅として解説します。
a)2行・9行より,GR2はループのたび次のように変化する。
00000001 → 00000010 → 00000100 → ……
つまり,ビット1が最下位(右端)から左へと1bitずつ移動していく。
b)4行・5行より,GR4には(20)10 = (00010100)2 がセットされ,前述のGR2とのANDがとられる。つまり,GR4内のビット列を右端から左へと1bitずつ調べて,その位置が1か0か判定している。
c)3行・8行より,GR3はループのたび次のように2倍される。
(5)10 → (10)10 → (20)10 → ……
d)よって7行目で解答格納領域(GR1)に加算される値は次のとおり。
1回目:GR4=0001010零 なので 5は加算しない
2回目:GR4=000101零0 なので 10は加算しない
3回目:GR4=00010壱00 なので GR1に(20)加算
4回目:GR4=0001零100 なので 40は加算しない
5回目:GR4=000壱0100 なので GR1に(80)加算
6回目:GR4=00零10100 なので 160は加算しない
7回目:GR4=0零010100 なので 320は加算しない
8回目:GR4=零0010100 なので 640は加算しない
11行目でANSに格納される値は(20)+(80)=(100)です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 【CASLプログラム】 定数(80と55)を確保し、その和をGR1に、その差をGR2に求めるCASL 1 2022/12/16 01:17
- 工学 電気回路の問題です。 (1)回路の入力インピーダンスZ0。 (2)回路の共振周波数を求めよ。また、そ 2 2023/05/28 23:09
- システム CPUの問題について 2 2022/07/09 12:04
- Ruby VBA 2 2023/01/14 14:14
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- 物理学 この問題における抵抗r1とxってどのように考えれば良いのでしょうか?トルクはT=P2/ωsなのでP2 1 2022/06/19 18:46
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
関連するカテゴリからQ&Aを探す
医師・看護師・助産師
薬剤師・登録販売者・MR
医療事務・調剤薬局事務
歯科衛生士・歯科助手
臨床検査技師・臨床工学技士
理学療法士・作業療法士・言語聴覚士
臨床心理士・心理カウンセラー・ソーシャルワーカー
介護福祉士・ケアマネージャー・社会福祉士
弁護士・行政書士・司法書士・社会保険労務士
フィナンシャルプランナー(FP)
中小企業診断士
公認会計士・税理士
簿記検定・漢字検定・秘書検定
情報処理技術者・Microsoft認定資格
TOEFL・TOEIC・英語検定
建築士
インテリアコーディネーター
宅地建物取引主任者(宅建)
不動産鑑定士・土地家屋調査士
マンション管理士
電気工事士
美容師・理容師
調理師・管理栄養士・パティシエ
シェフ
保育士・幼稚園教諭
教師・教員
国家公務員・地方公務員
警察官・消防士
その他(職業・資格)
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COBOL 9(02)で定義した変数にマ...
-
FP4という浮動小数点演算4桁の...
-
特許英和翻訳の場合、符号の説...
-
8ビットのグレイ符号10110110お...
-
テーブルに小数点以下の値を入...
-
10分の1は「10/1 それとも1/10...
-
1億x1億はいくらでしょうか?
-
50以下は“50”も入るのですか?
-
5進法を10進法への直し方
-
実績を積むという表現
-
「最大300字程度」
-
100以下の自然数のうち、次のよ...
-
偏微分の記号をタイプするため...
-
HEX2BIN関数の使い方。
-
エクセルでのシグマ計算
-
【機械図面】 最大値・最小値...
-
高窓(ハイサイド窓)を平面図...
-
エクセル関数で源泉徴収額を計...
-
Excel 16進数
-
エクセルで60進法計算の仕方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのデータ型。数値型に...
-
写真の数値は1302でしょうか? ...
-
COBOL 9(02)で定義した変数にマ...
-
固定小数点数、浮動小数点数に...
-
PN9によるBER測定
-
FP4という浮動小数点演算4桁の...
-
浮動小数点
-
8ビットのグレイ符号10110110お...
-
Excelで符号の変化をカウントす...
-
テーブルに小数点以下の値を入...
-
ACCESS 宛名ラベル(レポート...
-
2ビットの全加算器
-
看護情報の教科なんですが計算...
-
FORTRANでfloat(a)
-
IEEEの浮動小数点表現
-
浮動小数点形式の問題
-
567.8の10進数を正規化の仕方が...
-
日曜日の診察料
-
浮動小数点法での2進数変換
-
中高年の寡婦加算について
おすすめ情報