基本情報処理試験のフォルダを変更し、2018年春の分を追加
[YACASL2.git] / as / exam_fe / 2018_04 / mult.casl
diff --git a/as/exam_fe/2018_04/mult.casl b/as/exam_fe/2018_04/mult.casl
new file mode 100644 (file)
index 0000000..255cd5a
--- /dev/null
@@ -0,0 +1,20 @@
+MULT   START
+       RPUSH
+       LAD     GR2,CTBL
+       CALL    GETWD
+       LD      GR4,0,GR2    ; GR4 ← 被乗数
+       LD      GR5,1,GR2    ; GR5 ← 乗数
+       LD      GR0,=0
+       LD      GR5,GR5
+LP     JZE     FIN
+       LD      GR3,GR5
+       AND     GR3,=#0001   ; 乗数の最下位ビットのチェック
+       JZE     NEXT
+       ADDL    GR0,GR4
+NEXT   SLL     GR4,1        ; 被乗数を1ビット左論理シフト
+       SRL     GR5,1
+       JUMP    LP
+FIN    RPOP
+       RET
+CTBL   DS      3            ; GETWD用管理テーブル
+       END