From fe2de04b9021faae69c6b98d401797c9728e15dc Mon Sep 17 00:00:00 2001
From: j8takagi <j8takagi@nifty.com>
Date: Fri, 1 Jun 2018 15:14:18 +0900
Subject: [PATCH] =?utf8?q?=E6=83=85=E5=A0=B1=E5=87=A6=E7=90=86=E8=A9=A6?=
 =?utf8?q?=E9=A8=932011=E5=B9=B4=E7=A7=8B=E3=81=AE=E5=95=8F=E9=A1=8C?=
 =?utf8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 as/fe_tests/2011_10/Q12/Q12.txt       | 28 +++++++++++++++++++++++++++
 as/fe_tests/2011_10/Q12/btod1.casl    | 28 +++++++++++++++++++++++++++
 as/fe_tests/2011_10/Q12/btod2.casl    | 18 +++++++++++++++++
 as/fe_tests/2011_10/Q12/call_div.casl |  3 +++
 as/fe_tests/2011_10/Q12/div.casl      | 26 +++++++++++++++++++++++++
 5 files changed, 103 insertions(+)
 create mode 100644 as/fe_tests/2011_10/Q12/Q12.txt
 create mode 100644 as/fe_tests/2011_10/Q12/btod1.casl
 create mode 100644 as/fe_tests/2011_10/Q12/btod2.casl
 create mode 100644 as/fe_tests/2011_10/Q12/call_div.casl
 create mode 100644 as/fe_tests/2011_10/Q12/div.casl

diff --git a/as/fe_tests/2011_10/Q12/Q12.txt b/as/fe_tests/2011_10/Q12/Q12.txt
new file mode 100644
index 0000000..fa089cb
--- /dev/null
+++ b/as/fe_tests/2011_10/Q12/Q12.txt
@@ -0,0 +1,28 @@
+次のアセンブラプログラムの説明及びプログラムを読んで,設問1,2に答えよ。
+
+〔プログラム1の説明〕
+
+除算を行う副プログラム DIV である。
+
+(1) DIV は表1に示すレジスタを介して,被除数と除数を受け取り,商と剰余を返す。 数値は全て 32 ビットの符号なし整数とし,除数は0でないものとする。
+
+表1 パラメタの受渡し方法
+		上位語(上位 16 ビット)	下位語(下位 16 ビット)
+入力	被除数	GR1	GR2
+	除数	連続する2語に,上位 16 ビット,下位 16 ビットの順に格納し,上位語のアドレスを GR3 に設定
+出力	商	GR1	GR2
+	剰余	GR4	GR5
+
+(2) 副プログラム DIV から戻るとき,汎用レジスタ GR6, GR7 の内容は元に戻す。
+
+プログラム1中の に入れる正しい答えを,解答群の中から選べ。
+
+a に関する解答群
+
+ア ADDL GR1,0,GR3    イ ADDL GR1,=1     ウ ADDL GR2,1,GR3
+エ ADDL GR2,=1     オ ADDL GR4,0,GR3    カ ADDL GR5,1,GR3
+
+b に関する解答群
+
+ア JMI ADJ2     イ JMI CONT     ウ JOV ADJ2
+エ JOV CONT     オ JPL ADJ2     カ JPL CONT
diff --git a/as/fe_tests/2011_10/Q12/btod1.casl b/as/fe_tests/2011_10/Q12/btod1.casl
new file mode 100644
index 0000000..f67c7f4
--- /dev/null
+++ b/as/fe_tests/2011_10/Q12/btod1.casl
@@ -0,0 +1,28 @@
+ BTOD    START
+             RPUSH
+             LD     GR6,GR3
+             LAD    GR7,4,GR3
+             LAD    GR3,UDAT    ; 除数の初期設定
+     LP      CALL   DIV
+             OR     ,='0'
+             ST     ,0,GR6    ; 10 進数字1文字格納
+             CPL    GR6,GR7
+             JZE    FIN
+             LAD    GR6,1,GR6
+             LD     GR1,GR4     ; 被除数の再設定
+             LD     GR2,GR5
+             
+             JUMP   LP
+     FIN     RPOP
+             RET
+     UDAT    DC     0
+             DC     10000
+             DC     0
+             DC     1000
+             DC     0
+             DC     100
+             DC     0
+             DC     10
+             DC     0
+             DC     1
+             END
diff --git a/as/fe_tests/2011_10/Q12/btod2.casl b/as/fe_tests/2011_10/Q12/btod2.casl
new file mode 100644
index 0000000..073898e
--- /dev/null
+++ b/as/fe_tests/2011_10/Q12/btod2.casl
@@ -0,0 +1,18 @@
+ BTOD   START
+            RPUSH
+            LAD     GR6,4,GR3
+            LD      GR7,GR3
+            LAD     GR3,DAT
+     LP     CALL    DIV
+            OR      ,='0'
+            ST      ,0,GR6
+            CPL     GR6,GR7
+            JZE     FIN
+            LAD     GR6,-1,GR6
+            JUMP    LP
+     FIN    RPOP
+            RET
+     DAT    DC     0
+            DC     
+            END
+    
diff --git a/as/fe_tests/2011_10/Q12/call_div.casl b/as/fe_tests/2011_10/Q12/call_div.casl
new file mode 100644
index 0000000..87f12a3
--- /dev/null
+++ b/as/fe_tests/2011_10/Q12/call_div.casl
@@ -0,0 +1,3 @@
+MAIN	START
+    	RPUSH
+    
diff --git a/as/fe_tests/2011_10/Q12/div.casl b/as/fe_tests/2011_10/Q12/div.casl
new file mode 100644
index 0000000..bfc5630
--- /dev/null
+++ b/as/fe_tests/2011_10/Q12/div.casl
@@ -0,0 +1,26 @@
+DIV     START                     ; 減算を用いた 32 ビット除算
+    PUSH    0,GR6
+    PUSH    0,GR7
+    LD      GR6,GR1
+    LD      GR7,GR2
+    LD      GR1,=#FFFF        ; 商の初期化
+    LD      GR2,=#FFFF
+    LP      LD      GR4,GR6
+    LD      GR5,GR7
+    ADDL    GR2,=1            ; 商のカウントアップ
+    JOV     ADJ1
+    JUMP    CONT
+    ADJ1    
+    CONT    SUBL    GR6,0,GR3
+    J0V     FIN
+    SUBL    GR7,1,GR3
+    
+    JUMP    LP
+    ADJ2    SUBL    GR6,=1
+    J0V     FIN
+    JUMP    LP
+    FIN     POP     GR7
+    POP     GR6
+    RET
+    END
+ 
-- 
2.18.0