情報処理試験の問題とプログラムファイルを外部に分離
authorj8takagi <j8takagi@nifty.com>
Tue, 19 Jun 2018 08:05:42 +0000 (17:05 +0900)
committerj8takagi <j8takagi@nifty.com>
Tue, 19 Jun 2018 08:05:42 +0000 (17:05 +0900)
62 files changed:
as/exam_fe/2008_04/Q09/token.casl [deleted file]
as/exam_fe/2008_04/Q09/token_call.casl [deleted file]
as/exam_fe/2008_10/Q09/ptn1.casl [deleted file]
as/exam_fe/2008_10/Q09/ptn2.casl [deleted file]
as/exam_fe/2008_10/Q09/ptn3.casl [deleted file]
as/exam_fe/2008_10/Q09/ptn4.casl [deleted file]
as/exam_fe/2008_10/Q09/test_ptn1/0.txt [deleted file]
as/exam_fe/2008_10/Q09/test_ptn1/Makefile [deleted file]
as/exam_fe/2008_10/Q09/test_ptn1/test_ptn1.casl [deleted file]
as/exam_fe/2008_10/Q09/test_ptn2/0.txt [deleted file]
as/exam_fe/2008_10/Q09/test_ptn2/Makefile [deleted file]
as/exam_fe/2008_10/Q09/test_ptn2/test_ptn2.casl [deleted file]
as/exam_fe/2008_10/Q09/test_ptn3/0.txt [deleted file]
as/exam_fe/2008_10/Q09/test_ptn3/Makefile [deleted file]
as/exam_fe/2008_10/Q09/test_ptn3/test_ptn3.casl [deleted file]
as/exam_fe/2008_10/Q09/test_ptn4/0.txt [deleted file]
as/exam_fe/2008_10/Q09/test_ptn4/Makefile [deleted file]
as/exam_fe/2008_10/Q09/test_ptn4/test_ptn4.casl [deleted file]
as/exam_fe/2008_10/Q13/summary.casl [deleted file]
as/exam_fe/2008_10/Q13/testsummary/0.txt [deleted file]
as/exam_fe/2008_10/Q13/testsummary/Makefile [deleted file]
as/exam_fe/2008_10/Q13/testsummary/testsummary.casl [deleted file]
as/exam_fe/2009_04/Q12/muls.casl [deleted file]
as/exam_fe/2009_04/Q12/muls2.casl [deleted file]
as/exam_fe/2009_04/Q12/muls2_call.casl [deleted file]
as/exam_fe/2009_04/Q12/muls_call.casl [deleted file]
as/exam_fe/2009_10/Q12/outb.casl [deleted file]
as/exam_fe/2009_10/Q12/replace.casl [deleted file]
as/exam_fe/2009_10/Q12/replace_call.casl [deleted file]
as/exam_fe/2010_04/Q12/fadd.casl [deleted file]
as/exam_fe/2010_10/Q12/lrevrs.casl [deleted file]
as/exam_fe/2010_10/Q12/prevrs.casl [deleted file]
as/exam_fe/2010_10/Q12/revl.casl [deleted file]
as/exam_fe/2011_06/Q12/.gitignore [deleted file]
as/exam_fe/2011_06/Q12/Q12.txt [deleted file]
as/exam_fe/2011_06/Q12/call_rotate.casl [deleted file]
as/exam_fe/2011_06/Q12/call_rotate2.casl [deleted file]
as/exam_fe/2011_06/Q12/graph_five.casl [deleted file]
as/exam_fe/2011_06/Q12/out_pbm.casl [deleted file]
as/exam_fe/2011_06/Q12/pbm16.casl [deleted file]
as/exam_fe/2011_06/Q12/rotate.casl [deleted file]
as/exam_fe/2011_06/Q12/rotate2.casl [deleted file]
as/exam_fe/2011_10/Q12/Q12.txt [deleted file]
as/exam_fe/2011_10/Q12/btod1.casl [deleted file]
as/exam_fe/2011_10/Q12/btod2.casl [deleted file]
as/exam_fe/2011_10/Q12/call_btod.casl [deleted file]
as/exam_fe/2011_10/Q12/call_div.casl [deleted file]
as/exam_fe/2011_10/Q12/div.casl [deleted file]
as/exam_fe/2018_04/call_mult.casl [deleted file]
as/exam_fe/2018_04/dtob.casl [deleted file]
as/exam_fe/2018_04/getwd.casl [deleted file]
as/exam_fe/2018_04/l2str.casl [deleted symlink]
as/exam_fe/2018_04/mult.casl [deleted file]
doc/exam_fe/.gitignore [deleted file]
doc/exam_fe/2018_04/Makefile [deleted file]
doc/exam_fe/2018_04/fe_2018_04.texi [deleted file]
doc/exam_fe/2018_04/img/Makefile [deleted file]
doc/exam_fe/2018_04/img/fig1.svg [deleted file]
doc/exam_fe/2018_04/img/fig2.svg [deleted file]
doc/exam_fe/2018_04/img/fig3.svg [deleted file]
doc/exam_fe/style.css [deleted file]
doc/exam_fe/texinfo_exam.mk [deleted file]

diff --git a/as/exam_fe/2008_04/Q09/token.casl b/as/exam_fe/2008_04/Q09/token.casl
deleted file mode 100644 (file)
index de57bca..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-TOKEN   START
-        RPUSH
-        LD      GR3,=-1        ; 単語の処理中を示すフラグの初期化
-                               ;  0: 数字だけの単語を処理中である。
-                               ;  1: 英字を含む単語を処理中である。
-                               ; -1: 単語の処理中ではない。
-        LAD     GR1,-1,GR1
-LP      LAD     GR1,1,GR1
-        LD      GR4,0,GR1      ; 1文字を取り出す。
-        CPL     GR4,='.'       ; 終了判定
-        JZE     FIN 
-        CPL     GR4,=' '
-        JNZ     ALNUM
-        CALL    SETTKN
-        JUMP    LP
-ALNUM   LD      GR3,GR3        ; 単語の処理中?
-        JPL     LP             ;   英字を含む単語を処理中ならLPヘ
-        JZE     ACHK           ;   数字だけの単語を処理中ならACHKヘ
-        LD      GR3,=0
-        LD      GR6,GR1        ; 単語の先頭アドレスを退避
-ACHK    CPL     GR4,='A'       ; 検査対象文字は数字?
-        JMI     LP             ;   数字の場合,次の文字の取出しヘ
-        LD      GR3,=1         ;   英字の場合
-        JUMP    LP
-;
-FIN     CALL    SETTKN
-        LD      GR5,=-1
-        ST      GR5,0,GR2      ; 終了マークを格納
-        RPOP
-        RET
-;
-SETTKN  LD      GR3,GR3        ; 単語の処理中?
-        JMI     FIN2           ;   処理中でなければ何もしない。
-        ST      GR6,0,GR2      ; 単語の先頭アドレスを管理テーブルに格納
-        LD      GR5,GR1
-        SUBL    GR5,GR6        ; 単語の長さを計算
-        ST      GR5,1,GR2      ; 単語の長さを格納
-        ST      GR3,2,GR2      ; 単語の属性を格納
-        LD      GR3,=-1        ; 単語の処理中状態を解除
-        LAD     GR2,3,GR2 
-FIN2    RET
-        END
diff --git a/as/exam_fe/2008_04/Q09/token_call.casl b/as/exam_fe/2008_04/Q09/token_call.casl
deleted file mode 100644 (file)
index 9ed899b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-MAIN    START
-        LAD     GR1,STR
-        LAD     GR2,TBL
-        CALL    TOKEN
-        RET
-        DS      93
-STR     DC      '  THIS 1234  AN9999.'
-TBL     DS      100
-        END
diff --git a/as/exam_fe/2008_10/Q09/ptn1.casl b/as/exam_fe/2008_10/Q09/ptn1.casl
deleted file mode 100644 (file)
index cbf57c3..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-;;; 平成20年 秋期 基本情報技術者 午後 問09
-;;; 最上位ビットから与えられたビット番号までのビットを1、それ以外を0に設定
-PTN1    START
-        PUSH    0,GR1
-        LAD     GR2,15
-        SUBL    GR2,GR1
-        LD      GR1,GR2
-        LD      GR2,=#8000
-        SRA     GR2,0,GR1
-        POP     GR1
-        RET
-        END
diff --git a/as/exam_fe/2008_10/Q09/ptn2.casl b/as/exam_fe/2008_10/Q09/ptn2.casl
deleted file mode 100644 (file)
index b142e62..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-;;; 平成20年 秋期 基本情報技術者 午後 問09
-;;; 最上位ビットから与えられたビット番号までのビットを0、それ以外を1に設定
-PTN2    START
-        PUSH    0,GR1
-        LAD     GR2,16
-        SUBL    GR2,GR1
-        LD      GR1,GR2
-        LD      GR2,=#FFFF
-        SRL     GR2,0,GR1
-        POP     GR1
-        RET
-        END
diff --git a/as/exam_fe/2008_10/Q09/ptn3.casl b/as/exam_fe/2008_10/Q09/ptn3.casl
deleted file mode 100644 (file)
index c1a69f9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; 平成20年 秋期 基本情報技術者 午後 問09
-;;; 与えられたビット番号のビットを1,それ以外を0に設定
-PTN3   START
-       LD      GR2,=#0001
-       SLL     GR2,0,GR1
-       RET
-       END
diff --git a/as/exam_fe/2008_10/Q09/ptn4.casl b/as/exam_fe/2008_10/Q09/ptn4.casl
deleted file mode 100644 (file)
index 4c24fd8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-;;; 平成20年 秋期 基本情報技術者 午後 問09
-;;; 与えられたビット番号B1からB2(15>B1≧B2>0)までのビットを0、それ以外を1に設定
-PTN4    START
-        ST      GR1,WRK
-        LD      GR1,GR2
-        CALL    PTN1
-        PUSH    0,GR2       ; PTN1 の結果を一時保存
-        LD      GR1,WRK
-        LAD     GR1,1,GR1   ; ビット番号の調整
-        CALL    PTN2
-        POP     GR1         ; 保存していた PTN1 の結果を GR1 ヘ
-        XOR     GR2,GR1
-        LD      GR1,WRK
-        RET
-WRK     DS      1
-        END
diff --git a/as/exam_fe/2008_10/Q09/test_ptn1/0.txt b/as/exam_fe/2008_10/Q09/test_ptn1/0.txt
deleted file mode 100644 (file)
index ff9bad1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-../../../../../casl2 test_ptn1.casl ../ptn1.casl ../../../../../as/casl2lib/outb.casl
-1111111111100000
diff --git a/as/exam_fe/2008_10/Q09/test_ptn1/Makefile b/as/exam_fe/2008_10/Q09/test_ptn1/Makefile
deleted file mode 100644 (file)
index 9b30969..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-YACASL2DIR= ../../../../..
-CASL2 = $(YACASL2DIR)/casl2
-CASL2LIBDIR = $(YACASL2DIR)/as/casl2lib
-ASFILE = test_ptn1.casl ../ptn1.casl $(CASL2LIBDIR)/outb.casl
-CMD = $(CASL2) $(ASFILE)
-include $(YACASL2DIR)/test/TEST.mk
diff --git a/as/exam_fe/2008_10/Q09/test_ptn1/test_ptn1.casl b/as/exam_fe/2008_10/Q09/test_ptn1/test_ptn1.casl
deleted file mode 100644 (file)
index a033f58..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-MAIN    START
-        LAD     GR1,5
-        CALL    PTN1
-        LD      GR1,GR2
-        CALL    OUTB
-        RET
-        END
diff --git a/as/exam_fe/2008_10/Q09/test_ptn2/0.txt b/as/exam_fe/2008_10/Q09/test_ptn2/0.txt
deleted file mode 100644 (file)
index 7a4395f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-../../../../../casl2 testptn2.casl ../ptn2.casl ../../../../../as/casl2lib/outb.casl
-0000000000011111
diff --git a/as/exam_fe/2008_10/Q09/test_ptn2/Makefile b/as/exam_fe/2008_10/Q09/test_ptn2/Makefile
deleted file mode 100644 (file)
index 2d72cac..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-YACASL2DIR= ../../../../..
-CASL2 = $(YACASL2DIR)/casl2
-CASL2LIBDIR = $(YACASL2DIR)/as/casl2lib
-ASFILE = test_ptn2.casl ../ptn2.casl $(CASL2LIBDIR)/outb.casl
-CMD = $(CASL2) $(ASFILE)
-include $(YACASL2DIR)/test/TEST.mk
diff --git a/as/exam_fe/2008_10/Q09/test_ptn2/test_ptn2.casl b/as/exam_fe/2008_10/Q09/test_ptn2/test_ptn2.casl
deleted file mode 100644 (file)
index 62507ee..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-MAIN    START
-        LAD     GR1,5
-        CALL    PTN2
-        LD      GR1,GR2
-        CALL    OUTB
-        RET
-        END
diff --git a/as/exam_fe/2008_10/Q09/test_ptn3/0.txt b/as/exam_fe/2008_10/Q09/test_ptn3/0.txt
deleted file mode 100644 (file)
index 7920706..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-../../../../../casl2 testptn3.casl ../ptn3.casl ../../../../../as/casl2lib/outb.casl
-0000000000100000
diff --git a/as/exam_fe/2008_10/Q09/test_ptn3/Makefile b/as/exam_fe/2008_10/Q09/test_ptn3/Makefile
deleted file mode 100644 (file)
index 568739e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-YACASL2DIR= ../../../../..
-CASL2 = $(YACASL2DIR)/casl2
-CASL2LIBDIR = $(YACASL2DIR)/as/casl2lib
-ASFILE = test_ptn3.casl ../ptn3.casl $(CASL2LIBDIR)/outb.casl
-CMD = $(CASL2) $(ASFILE)
-include $(YACASL2DIR)/test/TEST.mk
diff --git a/as/exam_fe/2008_10/Q09/test_ptn3/test_ptn3.casl b/as/exam_fe/2008_10/Q09/test_ptn3/test_ptn3.casl
deleted file mode 100644 (file)
index 6f2047e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-MAIN    START
-        LAD     GR1,5
-        CALL    PTN3
-        LD      GR1,GR2
-        CALL    OUTB
-        RET
-        END
diff --git a/as/exam_fe/2008_10/Q09/test_ptn4/0.txt b/as/exam_fe/2008_10/Q09/test_ptn4/0.txt
deleted file mode 100644 (file)
index ccff634..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-../../../../../casl2 test_ptn4.casl ../ptn4.casl ../ptn1.casl ../ptn2.casl ../../../../../as/casl2lib/outb.casl
-1111100000011111
diff --git a/as/exam_fe/2008_10/Q09/test_ptn4/Makefile b/as/exam_fe/2008_10/Q09/test_ptn4/Makefile
deleted file mode 100644 (file)
index 42b4ba1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-YACASL2DIR= ../../../../..
-CASL2 = $(YACASL2DIR)/casl2
-CASL2LIBDIR = $(YACASL2DIR)/as/casl2lib
-ASFILE = test_ptn4.casl ../ptn4.casl ../ptn1.casl ../ptn2.casl $(CASL2LIBDIR)/outb.casl
-CMD = $(CASL2) $(ASFILE)
-include $(YACASL2DIR)/test/TEST.mk
diff --git a/as/exam_fe/2008_10/Q09/test_ptn4/test_ptn4.casl b/as/exam_fe/2008_10/Q09/test_ptn4/test_ptn4.casl
deleted file mode 100644 (file)
index 7a2aef5..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-MAIN    START
-        LAD     GR1,10
-        LAD     GR2,5
-        CALL    PTN4
-        LD      GR1,GR2
-        CALL    OUTB
-        RET
-        END
diff --git a/as/exam_fe/2008_10/Q13/summary.casl b/as/exam_fe/2008_10/Q13/summary.casl
deleted file mode 100644 (file)
index 1b7dda3..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; 平成20年 秋期 基本情報技術者 午後 問13
-;;; アンケートに対するn人分の回答を集計し、集計結果をグラフで出力する副プログラム
-SUMMARY START
-        RPUSH
-; カウンタ領域と出力バッファを初期化
-        LD    GR2,=0
-        LD    GR3,=' '
-        LD    GR4,=0          ; ループカウンタ
-        LAD   GR5,PBUF        ; 出力バッファのポインタ
-LOOP1   ST    GR2,COUNTR,GR4  ; カウンタ領域を初期化
-        ST    GR3,0,GR5       ; 出力バッファを空白で初期化
-        ST    GR3,1,GR5
-        ST    GR3,2,GR5
-        LAD   GR5,3,GR5       ; 出力バッファのポインタを更新
-        LAD   GR4,1,GR4       ; ループカウンタを更新
-        CPA   GR4,=16
-        JMI   LOOP1
-; 項目ごとに "はい" と答えた人数を集計
-        LD    GR5,=0          ; GR5: "はい" の人数の最大値
-LOOP2   LD    GR4,=0          ; カウンタ領域のポインタ
-        LD    GR2,0,GR1       ; GR2 ←1人分の回答
-LOOP3   SLL   GR2,1           ; 回答は "はい" ?
-        JOV   ON
-        JZE   NEXTW           ; 残りの項目はすべて "いいえ"
-        JUMP  OFF
-ON      LD    GR3,COUNTR,GR4  ; カウンタに1を加算
-        ADDA  GR3,=1
-        ST    GR3,COUNTR,GR4
-        CPA   GR3,GR5         ; 最大値と比較
-        JPL   CHANGE
-        JUMP  OFF
-CHANGE  LD    GR5,GR3         ; 最大値を入替え
-OFF     LAD   GR4,1,GR4       ; 次の項目
-        JUMP  LOOP3
-NEXTW   LAD   GR1,1,GR1
-        SUBA  GR0,=1          ; 全回答処理済?
-        JPL   LOOP2
-; 集計結果を棒グラフで出力
-        LD    GR5,GR5
-        JZE   FIN
-        LD    GR0,='*'
-LOOP4   LD    GR3,=1          ; 出力バッファのポインタ
-        LD    GR4,=0          ; カウンタ領域のポインタ
-LOOP5   CPA   GR5,COUNTR,GR4  ; "はい" の人数と比較
-        JNZ   NOTSET
-        ST    GR0,PBUF,GR3    ; 出力バッファに "*" を設定
-NOTSET  LAD   GR3,3,GR3       ; 出力バッファのポインタを更新
-        LAD   GR4,1,GR4       ; カウンタ領域のポインタを更新
-        CPA   GR4,=16
-        JMI   LOOP5
-        OUT   PBUF,PLEN
-        SUBA  GR5,=1
-        JPL   LOOP4
-FIN     OUT   FOOTER,PLEN
-        RPOP
-        RET
-COUNTR  DS    16              ; カウンタ領域
-PLEN    DC    48
-PBUF    DS    48              ; 出力バッファ
-FOOTER  DC    '01 02 03 04 05 06 07 08 09 10 11 12 13 '
-        DC    '14 15 16 '
-        END
diff --git a/as/exam_fe/2008_10/Q13/testsummary/0.txt b/as/exam_fe/2008_10/Q13/testsummary/0.txt
deleted file mode 100644 (file)
index b1d6f4d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-../../../../../casl2 testsummary.casl ../summary.casl
- *                                              
- *     *  *     *                               
- *  *  *  *     *  *                       *    
- *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * 
-01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 
diff --git a/as/exam_fe/2008_10/Q13/testsummary/Makefile b/as/exam_fe/2008_10/Q13/testsummary/Makefile
deleted file mode 100644 (file)
index b69201a..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-YACASL2DIR= ../../../../..
-CASL2 = $(YACASL2DIR)/casl2
-CASL2LIBDIR = $(YACASL2DIR)/as/casl2lib
-ASFILE = testsummary.casl ../summary.casl
-CMD = $(CASL2) $(ASFILE)
-TESTDIR = $(YACASL2DIR)/test
-include $(TESTDIR)/TEST.mk
diff --git a/as/exam_fe/2008_10/Q13/testsummary/testsummary.casl b/as/exam_fe/2008_10/Q13/testsummary/testsummary.casl
deleted file mode 100644 (file)
index 9287f86..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-MAIN    START
-        LAD GR1,DATA
-        LD  GR0,CNT
-        CALL SUMMARY
-        RET
-DATA    DC  #9600,#F000,#A400,#FFFF,0,#2
-CNT     DC  6
-        END
diff --git a/as/exam_fe/2009_04/Q12/muls.casl b/as/exam_fe/2009_04/Q12/muls.casl
deleted file mode 100644 (file)
index 21b70f3..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-;平成21年 春期 基本情報技術者 午後 問12
-MULS    START                ; 32ビット×16ビット→32ビット
-        RPUSH
-        LAD     GR6,0        ; 積 上位語の初期化
-        LAD     GR7,0        ; 積 下位語の初期化
-        LD      GR4,0,GR1    ; 被乗数 上位語の取出し
-        LD      GR5,1,GR1    ; 被乗数 下位語の取出し
-LP      SRL     GR2,1        ; 乗数を1ビット右にシフト
-        JOV     ADD32
-        JZE     FIN
-        JUMP    NEXT         ; 加算処理をスキップ
-ADD32   ADDL    GR6,GR4      ; 32ビット+32ビット→32ビット
-        ADDL    GR7,GR5
-        JOV     ADJ1
-        JUMP    NEXT 
-ADJ1    ADDL    GR6,=1       ; けた上げ処理
-NEXT    SLL     GR4,1        ; 被乗数(32ビット)を1ビット左にシフト
-        SLL     GR5,1
-        JOV     ADJ2
-        JUMP    LP
-ADJ2    OR      GR4,=1
-        JUMP    LP
-FIN     ST      GR6,0,GR3    ; 乗算結果の格納
-        ST      GR7,1,GR3
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2009_04/Q12/muls2.casl b/as/exam_fe/2009_04/Q12/muls2.casl
deleted file mode 100644 (file)
index b4143cf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-;平成21年 春期 基本情報技術者 午後 問12-2
-MUL     START              ; 32ビット×32ビット→32ビット
-        RPUSH
-        PUSH  0,GR3
-        PUSH  0,GR2
-        LD    GR2,1,GR2    ; 乗数下位語を取り出してGR2に設定
-        CALL  MULS         ; 被乗数×乗数下位語→積(A)
-        POP   GR2
-        LD    GR2,0,GR2
-        LAD   GR3,SV       ; 結果の格納先として作業領域を設定
-        CALL  MULS         ; 被乗数×乗数上位語→積(B)
-        LD    GR6,1,GR3
-        POP   GR3
-        ADDL  GR6,0,GR3    ; 積(A)の上位語と積(B)の下位語を加算
-        ST    GR6,0,GR3
-        RPOP
-        RET
-SV      DS    2
-        END
-MULS    START              ; 32ビット×16ビット→32ビット
-        RPUSH
-        LAD   GR6,0        ; 積 上位語の初期化
-        LAD   GR7,0        ; 積 下位語の初期化
-        LD    GR4,0,GR1    ; 被乗数 上位語の取出し
-        LD    GR5,1,GR1    ; 被乗数 下位語の取出し
-LP      SRL   GR2,1        ; 乗数を1ビット右にシフト
-        JOV   ADD32
-        JZE   FIN
-        JUMP  NEXT         ; 加算処理をスキップ
-ADD32   ADDL  GR6,GR4      ; 32ビット+32ビット→32ビット
-        ADDL  GR7,GR5
-        JOV   ADJ1
-        JUMP  NEXT 
-ADJ1    ADDL  GR6,=1       ; けた上げ処理
-NEXT    SLL   GR4,1        ; 被乗数(32ビット)を1ビット左にシフト
-        SLL   GR5,1
-        JOV   ADJ2
-        JUMP  LP
-ADJ2    OR    GR4,=1
-        JUMP  LP
-FIN     ST    GR6,0,GR3    ; 乗算結果の格納
-        ST    GR7,1,GR3
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2009_04/Q12/muls2_call.casl b/as/exam_fe/2009_04/Q12/muls2_call.casl
deleted file mode 100644 (file)
index 6f57d71..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-MAIN    START
-        LAD     GR1,X
-        LAD     GR2,Y
-        LAD     GR3,A
-        CALL    MUL
-        RET
-X       DC      2,3
-Y       DC      4,5
-A       DS      2
-        END
diff --git a/as/exam_fe/2009_04/Q12/muls_call.casl b/as/exam_fe/2009_04/Q12/muls_call.casl
deleted file mode 100644 (file)
index 2c6601b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-MAIN    START
-        LAD     GR1,X
-        LD      GR2,Y
-        LAD     GR3,A
-        CALL    MULS
-        RET
-X       DC      10,30
-Y       DC      4
-A       DS      2
-        END
diff --git a/as/exam_fe/2009_10/Q12/outb.casl b/as/exam_fe/2009_10/Q12/outb.casl
deleted file mode 100644 (file)
index 32fd6cb..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-;;; GR1に格納された値を、2進数値として表示
-OUTL    START
-        RPUSH
-        LAD     GR2,2           ; GR2に2進数の「2」を格納。
-        LAD     GR0,0           ; GR0 <- 0
-        ST      GR0,LEN         ; LENの初期化
-        AND     GR1,GR1         ; GR1をテスト
-        JZE     ZINS            ; GR1が0の場合、ZINSにジャンプ
-STI     CPL     GR1,GR2         ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
-        JMI     STLST           ; ↓
-        CALL    ODIVL           ; GR1とGR2の、商をGR0、剰余をGR1に格納
-        LD      GR1,NCHAR,GR1   ; GR1を文字に変換
-        CALL    STSTR           ; GR1をSTR領域に格納
-        LD      GR1,GR0         ; GR0をGR1にコピー
-        JUMP    STI             ; ループ終端
-STLST   LD      GR1,NCHAR,GR1   ; GR1を文字に変換
-        CALL    STSTR           ; GR1をSTR領域に格納
-        JUMP    EMB             ; EMBにジャンプ
-ZINS    LD      GR1,NCHAR       ; 「0」をSTR領域に格納
-        CALL    STSTR           ; ↓
-EMB     LD      GR1,NCHAR       ; GR0 <- '0'
-EMLOOP  LD      GR2,LEN         ; GR2 <- LEN
-        CPA     GR2,DIG         ; ループ先頭。(GR2 = DIG)の場合は、ループ脱出
-        JZE     PRT             ; ↓
-        
-        CALL    STSTR           ; GR1をSTR領域に格納
-        JUMP    EMLOOP          ; ループ終端
-PRT     LD      GR2,LEN         ; GR2にLENの値を格納
-        LAD     GR1,STR         ; GR1に文字列のアドレスを格納
-        CALL    REV             ; 文字列を逆順に並べ替え
-        OUT     STR,LEN         ; 文字列を出力
-        RPOP
-        RET
-STR     DS      17
-LEN     DS      1
-NCHAR   DC      '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-DIG     DC      16
-        END
-;; GR1をSTR領域に格納し、LENをインクリメント
-STSTR   PUSH    0,GR1
-        PUSH    0,GR2
-        LD      GR2,LEN         ; GR2にLENの値をロード
-        ST      GR1,STR,GR2     ; STR+GR2 <- GR1
-        LAD     GR2,1,GR2       ; GR2 <- GR2 + 1
-        ST      GR2,LEN         ; LENにGR2を格納
-        POP     GR2
-        POP     GR1
-        RET
-        END
-;;; GR1の値とGR2の値の、商をGR0、剰余をGR1に格納する
-;;; 0〜65535の範囲の数値を扱う
-ODIVL   START
-        PUSH    0,GR2
-        PUSH    0,GR3
-        LAD     GR0,0           ; GR0の初期化。商
-        ST      GR2,ODY         ; DYにGR2の初期値を保存
-        LAD     GR3,1           ; GR3の初期化。対象ビットを表す
-ODSL    CPL     GR2,GR1         ; ループ先頭。(GR3 > GR1)の場合、DLOOPへループ脱出
-        JPL     ODLOOP          ; ↓
-        SLL     GR3,1           ; GR3を1回左シフト
-        SLL     GR2,1           ; GR2を1回左シフト
-        JOV     ODYOV           ; オーバーフローの場合は、ODYOVにジャンプ
-        JUMP    ODSL            ; ループ終端
-ODYOV   SRL     GR2,1           ; GR2を1回右シフト
-        LAD     GR2,#8000,GR2   ; GR2 <- GR2 + #8000
-        SRL     GR3,1           ; GR3を1回右シフト
-        JUMP    ODLPIN          ; ODLPINへジャンプ
-ODLOOP  SRL     GR3,1           ; ループ先頭。GR3を1回右シフト
-        JZE     ODFIN           ; (GR3= 0)の場合、ループ脱出
-        SRL     GR2,1           ; GR2を1回右シフト
-        CPL     GR1,ODY         ; (GR1 < ODY)の場合、ループ脱出
-        JMI     ODFIN           ; ↓
-        CPL     GR1,GR2         ; (GR1 < GR2)の場合、ループ先頭へジャンプ
-        JMI     ODLOOP          ; ↓
-ODLPIN  SUBL    GR1,GR2         ; GR1 <- GR1 - GR2
-        ADDL    GR0,GR3         ; GR0 <- GR0 + GR3
-        JUMP    ODLOOP          ; ループ終端
-ODFIN   POP     GR3
-        POP     GR2
-        RET
-ODY     DS      1
-ODMB    DC      #8000
-        END
-;; アドレスがGR1、長さがGR2の文字列を逆順に並べ替える
-;; 例: 12345 -> 54321、54321- -> -12345
-REV     START
-        RPUSH
-        LAD     GR3,0           ; GR3の初期化
-RPU     CPL     GR3,GR2         ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
-        JZE     RNEXT           ; ↓
-        LD      GR4,GR1         ; GR4にGR1の値をコピー
-        ADDL    GR4,GR3         ; GR4 <- GR4 + GR3
-        LD      GR5,0,GR4       ; GR5にアドレスGR4の値を格納
-        PUSH    0,GR5           ; GR5をプッシュ
-        LAD     GR3,1,GR3       ; GR3 <- GR3 + 1
-        JUMP    RPU             ; ループ終端
-RNEXT   LAD     GR3,0           ; GR3の初期化
-RPO     CPL     GR3,GR2         ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
-        JZE     RFIN            ; ↓
-        POP     GR5             ; GR5にポップ
-        LD      GR4,GR1         ; GR4にGR1の値をコピー
-        ADDL    GR4,GR3         ; GR4 <- GR4 + GR3
-        ST      GR5,0,GR4       ; アドレスGR4にGR5の値を格納
-        LAD     GR3,1,GR3       ; GR3 <- GR3 + 1
-        JUMP    RPO             ; ループ終端
-RFIN    RPOP
-        RET
-        END
diff --git a/as/exam_fe/2009_10/Q12/replace.casl b/as/exam_fe/2009_10/Q12/replace.casl
deleted file mode 100644 (file)
index 0086976..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-REPLACE START
-        RPUSH
-        LD      GR4,GR2         ; GR4 ← p
-        SRL     GR4,4           ; GR4 ← p/16
-        ADDA    GR1,GR4         ; GR1 を置換え対象語(第i語)に位置付ける。
-        AND     GR2,=#000F
-        LD      GR4,=16
-        SUBA    GR4,GR2
-        LD      GR5,GR0
-        LD      GR6,=#8000
-        SUBA    GR3,=1
-        SRA     GR6,0,GR3
-        LD      GR7,GR6
-        SRL     GR0,0,GR2
-        SRL     GR6,0,GR2
-        SLL     GR5,0,GR4
-        SLL     GR7,0,GR4
-        LD      GR2,0,GR1
-        XOR     GR6,GR2         ; 第i語のうち
-        AND     GR2,GR6         ; ビット列Bを入れる部分を0にする。
-        OR      GR2,GR0
-        ST      GR2,0,GR1
-        LD      GR2,1,GR1
-        XOR     GR7,GR2         ; 第(i+1)語のうち
-        AND     GR2,GR7         ; ビット列Bを入れる部分を0にする。
-        OR      GR2,GR5
-        ST      GR2,1,GR1
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2009_10/Q12/replace_call.casl b/as/exam_fe/2009_10/Q12/replace_call.casl
deleted file mode 100644 (file)
index af77f46..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-MAIN    START
-        LAD     GR1,A
-        LD      GR0,B
-        LD      GR2,P
-        LD      GR3,Q
-        CALL    REPLACE
-        LAD     GR1,A
-        LAD     GR2,0
-LOOP    CPA     GR2,CNT
-        JZE     FIN
-        LD      GR1,A,GR2
-        CALL    OUTB
-        LAD     GR2,1,GR2
-        JUMP    LOOP
-FIN     RET
-A       DC      #FFFF,#FFFF,#FFFF,#FFFF,#FFFF,#FFFF
-CNT     DC      6
-B       DC      #B1D0
-P       DC      55
-Q       DC      12
-        END
diff --git a/as/exam_fe/2010_04/Q12/fadd.casl b/as/exam_fe/2010_04/Q12/fadd.casl
deleted file mode 100644 (file)
index fdf1eb5..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-FADD    START              ; Z ← X + Y
-        RPUSH
-        PUSH  0,GR3        ; 結果 Z の格納領域の先頭番地を退避
-        LD    GR4,0,GR1
-        AND   GR4,=#00FF   ; Ex: X の指数
-        LD    GR5,0,GR2
-        AND   GR5,=#00FF   ; Ey: Y の指数
-        LD    GR6,1,GR1    ; Mx: X の仮数
-        LD    GR7,1,GR2    ; My: Y の仮数
-; 加算前の準備 (指数をそろえる)
-; GR4 ← max(Ex,Ey) , GR6 ← 調整済 Mx , GR7 ← 調整済 My
-        LD    GR3,GR4
-        CPL   GR4,GR5
-        JZE   MADD         ; Ex = Ey の場合
-        JMI   BIGEY        ; Ex < Ey の場合
-        SUBL  GR3,GR5
-        SRL   GR7,0,GR3    ; My を調整
-        JUMP  MADD
-BIGEY   LD    GR4,GR5
-        SUBL  GR5,GR3
-        SRL   GR6,0,GR5    ; Mx を調整
-; 符号を考慮した仮数の加算
-; Sz: Z の符号 , Ez: Z の指数 , Mz: Z の仮数
-; GR4 ← (Sz,Ez) , GR5 ← Mz
-MADD    LD    GR1,0,GR1    ; X の符号の検査
-        JMI   XMINUS       ;   負の場合
-        LD    GR2,0,GR2    ; Y の符号の検査
-        
-        LD    GR5,GR6      ; X ≧ 0 , Y ≦ 0 の場合
-        SUBL  GR5,GR7      ; Mz ← 調整済 Mx − 調整済 My
-        JUMP  SCHECK
-XMINUS  LD    GR2,0,GR2
-        JMI   YMINUS
-        LD    GR5,GR7
-        SUBL  GR5,GR6
-        
-YMINUS  OR    GR4,=#8000   ; Z に負符号を設定
-ADDMXY  LD    GR5,GR6
-        ADDL  GR5,GR7      ; Mz ← 調整済 Mx + 調整済 My
-        JOV   ADJST        ; けた上がりがある場合の正規化
-        JUMP  NORM
-SCHECK  JOV   NEGMZ        ; Mz の符号を検査
-        JUMP  NORM
-NEGMZ   OR    GR4,=#8000   ; Sz に負符号を設定
-        XOR   GR5,=#FFFF   ; Mz ← −Mz
-        ADDL  GR5,=1
-;加算結果の正規化 
-NORM    LD    GR5,GR5      ; ゼロチェック
-        JNZ   LOOP
-        LD    GR4,=0
-        JUMP  FIN
-LOOP    LD    GR5,GR5      ; 正規化完了?
-        JMI   FIN
-        
-        SUBL  GR4,=1
-        JUMP  LOOP
-ADJST   SRL   GR5,1
-        OR    GR5,=#8000   ; Mz の最上位ビットを 1 に設定
-        
-FIN     POP   GR3
-        ST    GR4,0,GR3    ; 結果 Z の格納
-        ST    GR5,1,GR3
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2010_10/Q12/lrevrs.casl b/as/exam_fe/2010_10/Q12/lrevrs.casl
deleted file mode 100644 (file)
index 66a6fbf..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-PREVRS  START
-        RPUSH
-        LD    GR4,0,GR1     ; ビット列を保存
-        CALL  REVRS         ; ビット列のビットの並びを逆転
-        LD    GR5,0,GR1     ; GR5 ← 逆転したビット列
-        LD    GR6,=16
-        SUBA  GR6,GR3       ; GR6 ← 16 - q
-        SRL   GR5,0,GR2     ; 逆転した部分ビット列αを右端に移動
-        SLL   GR5,0,GR6     ; 逆転した部分ビット列αを左端に移動
-        SRL   GR5,0,GR2     ; 逆転した部分ビット列αを p ビットに移動
-        LD    GR6,=#8000
-        SRA   GR6,-1,GR3    ; q ビット連続した1の並びを作成
-        SRL   GR6,0,GR2
-        XOR   GR6,=#FFFF
-        AND   GR6,GR4       ; 元のビット列中の部分ビット列αにゼロを設定
-        OR    GR6,GR5
-        ST    GR6,0,GR1
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2010_10/Q12/prevrs.casl b/as/exam_fe/2010_10/Q12/prevrs.casl
deleted file mode 100644 (file)
index 66a6fbf..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-PREVRS  START
-        RPUSH
-        LD    GR4,0,GR1     ; ビット列を保存
-        CALL  REVRS         ; ビット列のビットの並びを逆転
-        LD    GR5,0,GR1     ; GR5 ← 逆転したビット列
-        LD    GR6,=16
-        SUBA  GR6,GR3       ; GR6 ← 16 - q
-        SRL   GR5,0,GR2     ; 逆転した部分ビット列αを右端に移動
-        SLL   GR5,0,GR6     ; 逆転した部分ビット列αを左端に移動
-        SRL   GR5,0,GR2     ; 逆転した部分ビット列αを p ビットに移動
-        LD    GR6,=#8000
-        SRA   GR6,-1,GR3    ; q ビット連続した1の並びを作成
-        SRL   GR6,0,GR2
-        XOR   GR6,=#FFFF
-        AND   GR6,GR4       ; 元のビット列中の部分ビット列αにゼロを設定
-        OR    GR6,GR5
-        ST    GR6,0,GR1
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2010_10/Q12/revl.casl b/as/exam_fe/2010_10/Q12/revl.casl
deleted file mode 100644 (file)
index 1424d8c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-LREVRS  START
-        RPUSH
-        LD     GR3,GR1
-        LD     GR4,GR2
-        SUBA   GR4,=1
-        JZE    LOOP2
-        ADDA   GR4,GR1
-LOOP1   LD     GR5,0,GR3      ;
-        LD     GR6,0,GR4      ; GR3 が指す語と GR4 が指す語の内容を
-        ST     GR5,0,GR4      ; 入れ替える
-        ST     GR6,0,GR3      ;
-        LAD    GR3,1,GR3      ; GR3 を次の語に位置付ける
-        LAD    GR4,-1,GR4     ; GR4 を一つ前の語に位置付ける
-        CPA    GR3,GR4
-        JMI    LOOP1
-LOOP2   CALL   REVRS
-        LAD    GR1,1,GR1
-        SUBA   GR2,=1
-        JNZ    LOOP2
-FIN3    RPOP
-        RET
-        END
-REVRS   START
-        RPUSH
-        LD     GR4,=0     ; 結果のビット列を初期化
-        LAD    GR2,15     ; ループカウンタ
-        LD     GR3,0,GR1  ; GR3 ← ビット列
-LOOP    SLL    GR4,1      ; 結果のビット列を左シフト
-        SRL    GR3,1      ; 元のビット列を右シフト
-        JOV    ON
-        JZE    FIN1       ; 元のビット列の残りのビットはすべてゼロ
-        JUMP   OFF
-ON      OR     GR4,=#0001
-OFF     SUBA   GR2,=1
-        JMI    FIN2       ; 16 ビット処理済み
-        JUMP   LOOP
-FIN1    SLL    GR4,0,GR2  ; 結果のビット列を残りのビット数だけシフト
-FIN2    ST     GR4,0,GR1
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2011_06/Q12/.gitignore b/as/exam_fe/2011_06/Q12/.gitignore
deleted file mode 100644 (file)
index 237bae2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-*.pbm
-*.png
diff --git a/as/exam_fe/2011_06/Q12/Q12.txt b/as/exam_fe/2011_06/Q12/Q12.txt
deleted file mode 100644 (file)
index 24152ab..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_pm_qs.pdf P.57 - P.60
-次のアセンブラプログラムの説明及びプログラムを読んで,設問1~3に答えよ。
-
-〔プログラム1の説明〕
-
-連続する 16 語に格納した 16 × 16 ドットの白黒の図形を,時計回りに 90 度回転する 副プログラム ROTATE である。図形の回転の実行例を図1に示す。このとき,1ドットを1ビットで 表し,白は0,黒は1が格納されている。
-
-図1.
-five.png
-five_r.png
-
-(1) 図形を表す 16 語の先頭アドレスは GR1 に設定されて,主プログラムから渡される。
-
-(2) 回転した結果の図形を格納する領域の先頭アドレスは GR2 に設定されて, 主プログラムから渡される。
-
-(3) 元の図形と回転した図形は,異なる領域に格納される。
-
-(4) 副プログラムから戻るとき,汎用レジスタ GR1 ~ GR7 の内容は元に戻す。
-
-ROTATE  START
-        RPUSH
-        LD     GR3,=16
-LOOP1   LD     GR4,=16
-        LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
-        LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
-LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
-        SRL    GR7,1
-        SLL    GR6,1
-        JOV    ON
-        JUMP   CONT
-ON      OR     GR7,=#8000
-CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
-         
-        SUBA   GR4,=1
-        JNZ    LOOP2
-         
-        SUBA   GR3,=1
-        JNZ    LOOP1
-        RPOP
-        RET
-        END
-
-設問1.
-プログラム1中の に入れる正しい答えを,解答群の中から選べ。
-
-解答群
-
-ア LAD GR1,-1,GR1    イ LAD GR1,1,GR1    ウ LAD GR2,-1,GR2
-エ LAD GR2,1,GR2     オ LAD GR5,-1,GR5   カ LAD GR5,1,GR5
-
-
-設問2.
-行番号9を次のとおりに変更し,図1の回転前を元の図形として実行した。実行結果の図形として正しい答えを,解答群の中から選べ。
-
-    SRL GR6,1
-
-設問3.
-プログラム1中の行番号3,4をプログラム2に置き換えて,16×16ドットの図形のうち左上のn×nドットの部分だけを時計回りに90度回転するプログラムとした。左上の8×8ドットの部分だけを回転した実行例を図2に示す。
-    値n(1≦n≦16)は GR3 に設定されて主プログラムから渡される。
-    置換え後のプログラムは,まず,回転の対象とならないドット(元の図形の上n語の右(16-n)ビットと下(16-n)語の全ビット)を結果の領域の適切な場所に複写する。その後,左上のn×nドットの部分を回転して結果の領域に格納する。
-プログラム2の に入れる正しい答えを,解答群の中から選べ。
-
-ROTATE  START
-        RPUSH
-        LD     GR3,=16
-LOOP1   LD     GR4,=16
-        LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
-        LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
-LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
-        SRL    GR7,1
-        SLL    GR6,1
-        JOV    ON
-        JUMP   CONT
-ON      OR     GR7,=#8000
-CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
-         
-        SUBA   GR4,=1
-        JNZ    LOOP2
-         
-        SUBA   GR3,=1
-        JNZ    LOOP1
-        RPOP
-        RET
-        END
-
-c に関する解答群
-
-ア SLL GR0,-1,GR3    イ SLL GR0,0,GR3    ウ SRL GR0,-1,GR3    エ SRL GR0,0,GR3
-
-d に関する解答群
-
-ア JMI LOOP1    イ JNZ LOOP1    ウ JPL LOOP1    エ JZE LOOP1
diff --git a/as/exam_fe/2011_06/Q12/call_rotate.casl b/as/exam_fe/2011_06/Q12/call_rotate.casl
deleted file mode 100644 (file)
index 40b6ef4..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-;;; 「五」を90度回転させた16 x 16のpbm画像を出力する
-;;; 呼び出し方:
-;;;   casl2 call_rotate.casl rotate.casl pbm16.casl
-MAIN    START
-        LAD     GR1,GRAPH
-        LAD     GR2,RES
-        CALL    ROTATE
-        LAD     GR1,RES
-        CALL    PBM16
-        RET
-GRAPH   DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #0700
-        DC      #0700
-        DC      #0700
-        DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #071C
-        DC      #071C
-        DC      #071C
-        DC      #FFFF
-        DC      #FFFF
-        DC      #FFFF
-        DC      #0000
-RES     DS      16
-        END
diff --git a/as/exam_fe/2011_06/Q12/call_rotate2.casl b/as/exam_fe/2011_06/Q12/call_rotate2.casl
deleted file mode 100644 (file)
index d4ed34f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-;;; 「五」を90度回転させた16 x 16のpbm画像を出力する
-;;; 呼び出し方:
-;;;   casl2 call_rotate2.casl rotate2.casl pbm16.casl
-MAIN    START
-        LAD     GR1,GRAPH
-        LAD     GR2,RES
-        LAD     GR3,8
-        CALL    ROTATE
-        LAD     GR1,RES
-        CALL    PBM16
-        RET
-GRAPH   DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #0700
-        DC      #0700
-        DC      #0700
-        DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #071C
-        DC      #071C
-        DC      #071C
-        DC      #FFFF
-        DC      #FFFF
-        DC      #FFFF
-        DC      #0000
-RES     DS      16
-        END
diff --git a/as/exam_fe/2011_06/Q12/graph_five.casl b/as/exam_fe/2011_06/Q12/graph_five.casl
deleted file mode 100644 (file)
index 7b53ace..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-GRAPH   START
-        DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #0700
-        DC      #0700
-        DC      #0700
-        DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #071C
-        DC      #071C
-        DC      #071C
-        DC      #FFFF
-        DC      #FFFF
-        DC      #FFFF
-        DC      #0000
-        END
diff --git a/as/exam_fe/2011_06/Q12/out_pbm.casl b/as/exam_fe/2011_06/Q12/out_pbm.casl
deleted file mode 100644 (file)
index 4eebee2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-;;; 「五」を表す16 x 16のpbm画像を出力する
-;;; 呼び出し方:
-;;;   casl2 out_pbm.casl pbm16.casl
-MAIN    START
-        LAD     GR1,GRAPH
-        CALL    PBM16
-        RET
-GRAPH   DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #0700
-        DC      #0700
-        DC      #0700
-        DC      #FFFC
-        DC      #FFFC
-        DC      #FFFC
-        DC      #071C
-        DC      #071C
-        DC      #071C
-        DC      #FFFF
-        DC      #FFFF
-        DC      #FFFF
-        DC      #0000
-        END
diff --git a/as/exam_fe/2011_06/Q12/pbm16.casl b/as/exam_fe/2011_06/Q12/pbm16.casl
deleted file mode 100644 (file)
index e615f35..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-;;; PBM16
-;;; GR1で指定されたアドレス以降のメモリを 16×16 の
-;;; 白黒ビットマップ画像データ(白:0 黒:1)とみなし、
-;;; PBM画像ファイルとして出力
-;;; 入力: GR1 画像データの先頭アドレス
-;;; 依存副プログラム: outb_w.casl divl.casl rotate.casl
-PBM16   START
-        PUSH    0,GR1
-        PUSH    0,GR2
-        ST      GR1,BEG
-        OUT     L1,L1LEN
-        OUT     L2,L2LEN
-        XOR     GR2,GR2
-LOOP    CPL     GR2,HEIGHT
-        JZE     FIN
-        LD      GR1,BEG
-        ADDL    GR1,GR2
-        LD      GR1,0,GR1
-        CALL    OUTB
-        LAD     GR2,1,GR2
-        JUMP    LOOP
-FIN     POP     GR2
-        POP     GR1
-        RET
-L1      DC      'P1'
-L1LEN   DC      2
-L2      DC      '16 16'
-L2LEN   DC      5
-HEIGHT  DC      16
-BEG     DS      1
-        END
-;;; GR1に格納された値を、2進数値として表示
-OUTB    START
-        RPUSH
-        LD      GR2,BIN         ; GR2に2進数の「2」を格納。
-        XOR     GR4,GR4         ; GR4: 2進数値の長さ
-STI     CPL     GR1,GR2         ; ループ先頭。(GR1 < GR2)の場合は、ループ脱出
-        JMI     STLST           ; ↓
-        CALL    DIVL            ; GR1とGR2の、商をGR0、剰余をGR3に格納
-        LD      GR1,GR3         ; GR1にGR3をコピー
-        LD      GR1,NCHAR,GR1   ; GR1を文字に変換
-        ST      GR1,STR,GR4     ; (STR + GR4) <- GR1
-        LAD     GR4,1,GR4       ; GR4 <- GR4 + 1
-        LD      GR1,GR0         ; GR0をGR1にコピー
-        JUMP    STI             ; ループ終端
-STLST   LD      GR1,NCHAR,GR1   ; GR1を文字に変換
-        ST      GR1,STR,GR4     ; (STR + GR4) <- GR1
-        LAD     GR4,1,GR4       ; GR4 <- GR4 + 1
-EMLOOP  CPL     GR4,DIG         ; ループ先頭。(GR4 = DIG)の場合は、ループ脱出
-        JZE     PRT             ; ↓
-        LD      GR1,NCHAR       ; GR1 <- NCHAR:'0'
-        ST      GR1,STR,GR4     ; (STR + GR4) <- GR1
-        LAD     GR4,1,GR4       ; GR4 <- GR4 + 1
-        JUMP    EMLOOP          ; ループ終端
-PRT     ST      GR4,LEN         ; LEN <- GR4
-        LD      GR2,LEN         ; GR2にLENの値を格納
-        LAD     GR1,STR         ; GR1に文字列のアドレスを格納
-        CALL    REV             ; 文字列を逆順に並べ替え
-        OUT     STR,LEN         ; 文字列を出力
-        RPOP
-        RET
-STR     DS      17
-LEN     DS      1
-BIN     DC      2
-NCHAR   DC      '01'
-SPC     DC      ' '
-DIG     DC      16
-        END
-;;; 0〜65535の範囲にある正数の割算(筆算方式)を行う
-;;; 入力 GR1:被除数 GR2:除数
-;;; 出力 GR0:商 GR3:剰余
-;;; (GR2 = 0)の場合、GR0 GR3とも0になり、オーバーフロー
-DIVL    START
-        PUSH    0,GR1
-        PUSH    0,GR2
-        PUSH    0,GR4
-        XOR     GR0,GR0         ; GR0:商 初期化
-        XOR     GR3,GR3         ; GR3:剰余 初期化
-        AND     GR2,GR2         ; (GR2 = 0)の場合、DIVZEROへジャンプ
-        JZE     DIVZERO         ; ↓
-        AND     GR1,GR1         ; (GR1 = 0)の場合、FINへジャンプ
-        JZE     FIN             ; ↓
-        ST      GR2,Y           ; YにGR2の初期値を保存
-        LAD     GR4,1           ; GR4:対象ビットのインデックス 初期化
-SL      CPL     GR2,GR1         ; ループ先頭。(GR2 > GR1)の場合、LOOPへループ脱出
-        JPL     LOOP            ; ↓
-        SLL     GR4,1           ; GR4を1回左シフト
-        ST      GR2,TMP         ; GR2の値をTMPに退避
-        SLL     GR2,1           ; GR2を1回左シフト
-        JOV     YOV             ; オーバーフローの場合は、YOVへジャンプ
-        JUMP    SL              ; ループ終端
-YOV     LD      GR2,TMP         ; GR2の値をTMPから復元
-        SRL     GR4,1           ; GR4を1回右シフト
-        JUMP    LPIN            ; LPINへジャンプ
-LOOP    SRL     GR4,1           ; ループ先頭。GR4を1回右シフト
-        JZE     SETMOD          ; (GR4 = 0)の場合、SETMODへループ脱出
-        SRL     GR2,1           ; GR2を1回右シフト
-        CPL     GR1,Y           ; (GR1 < Y)の場合、SETMODへループ脱出
-        JMI     SETMOD          ; ↓
-        CPL     GR1,GR2         ; (GR1 < GR2)の場合、ループ先頭へジャンプ
-        JMI     LOOP            ; ↓
-LPIN    SUBL    GR1,GR2         ; GR1 <- GR1 - GR2
-        ADDL    GR0,GR4         ; GR0 <- GR0 + GR4
-        JUMP    LOOP            ; ループ終端
-DIVZERO LAD     GR3,#8000       ; 強制的にオーバーフローを発生させ、GR3 <- 0
-        SLL     GR3,1           ; ↓
-        JUMP    FIN             ; FIN へジャンプ
-SETMOD  LD      GR3,GR1         ; GR3 <- GR1。剰余の設定
-FIN     POP     GR4
-        POP     GR2
-        POP     GR1
-        RET
-Y       DS      1
-TMP     DS      1
-        END
-;;; メモリー上にある指定されたアドレス、長さの文字列を逆順に並べ替える
-;;;     例: 12345 -> 54321、54321- -> -12345
-;;; 入力 GR1:文字列のアドレス GR2:文字列の長さ
-;;; 出力 (同上)
-REV     START
-        RPUSH
-        LAD     GR3,0           ; GR3の初期化
-PU      CPL     GR3,GR2         ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
-        JZE     NEXT            ; ↓
-        LD      GR4,GR1         ; GR4 <- GR1
-        ADDL    GR4,GR3         ; GR4 <- GR4 + GR3
-        LD      GR5,0,GR4       ; GR5 <- GR4アドレスの値
-        PUSH    0,GR5           ; GR5をプッシュ
-        LAD     GR3,1,GR3       ; GR3 <- GR3 + 1
-        JUMP    PU              ; ループ終端
-NEXT    LAD     GR3,0           ; GR3の初期化
-PO      CPL     GR3,GR2         ; ループ先頭。(GR3 = GR2)の場合、ループ脱出
-        JZE     FIN             ; ↓
-        POP     GR5             ; GR5にポップ
-        LD      GR4,GR1         ; GR4にGR1の値をコピー
-        ADDL    GR4,GR3         ; GR4 <- GR4 + GR3
-        ST      GR5,0,GR4       ; GR4のアドレス <- GR5の値
-        LAD     GR3,1,GR3       ; GR3 <- GR3 + 1
-        JUMP    PO              ; ループ終端
-FIN     RPOP
-        RET
-        END
diff --git a/as/exam_fe/2011_06/Q12/rotate.casl b/as/exam_fe/2011_06/Q12/rotate.casl
deleted file mode 100644 (file)
index 1ec2d29..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-ROTATE  START
-        RPUSH
-        LD     GR3,=16
-LOOP1   LD     GR4,=16
-        LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
-        LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
-LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
-        SRL    GR7,1
-        SLL    GR6,1
-        JOV    ON
-        JUMP   CONT
-ON      OR     GR7,=#8000
-CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
-        LAD    GR5,1,GR5
-        SUBA   GR4,=1
-        JNZ    LOOP2
-        LAD    GR1,1,GR1
-        SUBA   GR3,=1
-        JNZ    LOOP1
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2011_06/Q12/rotate2.casl b/as/exam_fe/2011_06/Q12/rotate2.casl
deleted file mode 100644 (file)
index d2d7061..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-ROTATE  START
-        RPUSH
-        ST     GR3,N
-        LD     GR4,GR3
-        LD     GR5,GR1
-        LD     GR6,GR2
-        LD     GR7,=16
-        SUBA   GR7,GR3
-SHIFT   LD     GR0,0,GR5
-        SLL    GR0,0,GR3
-        ST     GR0,0,GR6       ; 結果の領域 ← GR0
-        LAD    GR5,1,GR5       ; 元の図形の1語のアドレス更新
-        LAD    GR6,1,GR6       ; 結果の図形の1語のアドレス更新
-        SUBA   GR4,=1          ; n語処理済み?
-        JNZ    SHIFT
-COPY    SUBA   GR7,=1          ; 残りの語の内容を結果の領域に複写
-        JMI    LOOP1
-        LD     GR0,0,GR5
-        ST     GR0,0,GR6
-        LAD    GR5,0,GR5
-        LAD    GR6,0,GR6
-        JUMP   COPY
-N       DS     1
-LOOP1   LD     GR4,N
-        LD     GR5,GR2         ; GR5 ← 結果の領域のアドレス
-        LD     GR6,0,GR1       ; GR6 ← 元の図形の先頭語の内容
-LOOP2   LD     GR7,0,GR5       ; GR7 ← 結果の領域の1語の内容
-        SRL    GR7,1
-        SLL    GR6,1
-        JOV    ON
-        JUMP   CONT
-ON      OR     GR7,=#8000
-CONT    ST     GR7,0,GR5       ; 処理した1語を結果の領域に格納
-        LAD    GR5,1,GR5
-        SUBA   GR4,=1
-        JNZ    LOOP2
-        LAD    GR1,1,GR1
-        SUBA   GR3,=1
-        JNZ    LOOP1
-        RPOP
-        RET
-        END
diff --git a/as/exam_fe/2011_10/Q12/Q12.txt b/as/exam_fe/2011_10/Q12/Q12.txt
deleted file mode 100644 (file)
index 3caa0c5..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_fe_pm_qs.pdf P.56 - P.59
-次のアセンブラプログラムの説明及びプログラムを読んで,設問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.
-プログラム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
-
-設問2.
-10進表記で 0~99999 の値の整数を32ビット符号なし整数として与えたとき,DIV を用いて10進数文字列に変換する副プログラム BTOD を異なるアルゴリズムで2種類作成した。プログラム2は10進表記の上位桁から求めるものであり,プログラム3は10進表記の下位桁から求めるものである。プログラム2,プログラム3中の に入れる正しい答えを,解答群の中から選べ。
-BTOD は32ビット符号なし整数の上位語を GR1 に,下位語を GR2 に,変換結果を格納する領域の先頭アドレスを GR3 に設定して呼び出される。
-変換後の10進数文字列は5語の領域に格納される。ただし,5桁に満たない場合は上位桁に"0"が補われる。対象数値が16進表記で 0000054D の場合の実行結果を,次に示す。
-pm12_3.gif/image-size:317×50
-副プログラム BTOD から戻るとき,汎用レジスタ GR1~GR7 の内容は元に戻す。
diff --git a/as/exam_fe/2011_10/Q12/btod1.casl b/as/exam_fe/2011_10/Q12/btod1.casl
deleted file mode 100644 (file)
index 537b16e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-BTOD    START
-        RPUSH
-        LD     GR6,GR3
-        LAD    GR7,4,GR3
-        LAD    GR3,UDAT    ; 除数の初期設定
-LP      CALL   DIV
-        OR     GR2,='0'
-        ST     GR2,0,GR6   ; 10進数字1文字格納
-        CPL    GR6,GR7
-        JZE    FIN
-        LAD    GR6,1,GR6
-        LD     GR1,GR4     ; 被除数の再設定
-        LD     GR2,GR5
-        LAD    GR3,2,GR3
-        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/exam_fe/2011_10/Q12/btod2.casl b/as/exam_fe/2011_10/Q12/btod2.casl
deleted file mode 100644 (file)
index b461463..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-BTOD   START
-       RPUSH
-       LAD     GR6,4,GR3
-       LD      GR7,GR3
-       LAD     GR3,DAT
-LP     CALL    DIV
-       OR      GR5,='0'
-       ST      GR5,0,GR6
-       CPL     GR6,GR7
-       JZE     FIN
-       LAD     GR6,-1,GR6
-       JUMP    LP
-FIN    RPOP
-       RET
-DAT    DC     0
-       DC     10
-       END
diff --git a/as/exam_fe/2011_10/Q12/call_btod.casl b/as/exam_fe/2011_10/Q12/call_btod.casl
deleted file mode 100644 (file)
index a36354c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-MAIN    START
-        LAD     GR1,#0000
-        LAD     GR2,#054D
-        LAD     GR3,STR
-        CALL    BTOD
-        OUT     STR,LEN
-        RET
-STR     DS      5
-LEN     DC      5
-        END
diff --git a/as/exam_fe/2011_10/Q12/call_div.casl b/as/exam_fe/2011_10/Q12/call_div.casl
deleted file mode 100644 (file)
index 5f8d825..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-MAIN    START
-        LAD     GR1,0
-        LAD     GR2,17
-        LAD     GR3,OP
-        CALL    DIV
-        RET
-OP      DC      0,3
-        END
diff --git a/as/exam_fe/2011_10/Q12/div.casl b/as/exam_fe/2011_10/Q12/div.casl
deleted file mode 100644 (file)
index 13b75dd..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-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 ADDL    GR1,=1
-CONT SUBL    GR6,0,GR3
-     JOV     FIN
-     SUBL    GR7,1,GR3
-     JOV     ADJ2
-     JUMP    LP
-ADJ2 SUBL    GR6,=1
-     JOV     FIN
-     JUMP    LP
-FIN  POP     GR7
-     POP     GR6
-     RET
-     END
-
diff --git a/as/exam_fe/2018_04/call_mult.casl b/as/exam_fe/2018_04/call_mult.casl
deleted file mode 100644 (file)
index 0d6c96b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-MAIN    START
-        LAD     GR1,WD
-        CALL    MULT
-        LD      GR1,GR0
-        LAD     GR2,STR
-        CALL    L2STR
-        ST      GR0,LEN
-        OUT     STR,LEN
-        RET
-WD      DC      '12   45.'
-STR     DS      5
-LEN     DS      1
diff --git a/as/exam_fe/2018_04/dtob.casl b/as/exam_fe/2018_04/dtob.casl
deleted file mode 100644 (file)
index 91d4ca3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-DTOB    START
-        RPUSH
-        ADDL   GR2,GR1
-        LAD    GR0,0           ; 戻り値の初期化
-LP      CPL    GR1,GR2         ; 変換終了?
-        JZE    FIN
-        LD     GR4,0,GR1       ; 数字1文字の取出し
-        SUBL   GR4,='0'        ; 1 桁を数値に変換
-        SLL    GR0,1           ; GR0を10倍してGR4を加算
-        LD     GR5,GR0
-        SLL    GR5,2
-        ADDL   GR0,GR5
-        ADDL   GR0,GR4
-        LAD    GR1,1,GR1
-        JUMP   LP
-FIN     RPOP
-        RET
-        END
diff --git a/as/exam_fe/2018_04/getwd.casl b/as/exam_fe/2018_04/getwd.casl
deleted file mode 100644 (file)
index 47e69cd..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-GETWD   START
-        RPUSH
-        LD     GR6,GR1
-        LD     GR7,GR2
-        LD     GR3,=-1       ; 数字列の処理状態フラグの初期化
-        LAD    GR6,-1,GR6
-LP      LAD    GR6,1,GR6
-        LD     GR4,0,GR6     ; 1文字の取出し
-        CPL    GR4,='.'
-        JZE    FIN
-        CPL    GR4,=' '
-        JNZ    NUM
-        CALL   SETWD
-        JUMP   LP
-NUM     LD     GR3,GR3       ; 数字列の処理中?
-        JZE    LP
-        LD     GR3,=0        ; 次の数字列の処理開始
-        LD     GR1,GR6       ; 数字列の先頭アドレスを退避
-        JUMP   LP
-FIN     CALL   SETWD
-        LD     GR2,=-1
-        ST     GR2,0,GR7     ; 数値の終わりを示す印を格納
-        RPOP
-        RET
-SETWD   LD     GR3,GR3
-        JNZ    FIN2
-        LD     GR2,GR6
-        SUBL   GR2,GR1
-        CALL   DTOB          ; 数字列を数値に変換
-        ST     GR0,0,GR7
-        LD     GR3,=-1       ; 数字列の処理中状態を解除
-        LAD    GR7,1,GR7
-FIN2    RET
-        END
diff --git a/as/exam_fe/2018_04/l2str.casl b/as/exam_fe/2018_04/l2str.casl
deleted file mode 120000 (symlink)
index c64e894..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../casl2lib/l2str.casl
\ No newline at end of file
diff --git a/as/exam_fe/2018_04/mult.casl b/as/exam_fe/2018_04/mult.casl
deleted file mode 100644 (file)
index 255cd5a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-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
diff --git a/doc/exam_fe/.gitignore b/doc/exam_fe/.gitignore
deleted file mode 100644 (file)
index 8ba3bd6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-*.html
-*.pdf
-*.eps
diff --git a/doc/exam_fe/2018_04/Makefile b/doc/exam_fe/2018_04/Makefile
deleted file mode 100644 (file)
index 3f46ec9..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-VPATH := img
-
-CSS := ../style.css
-
-TEXITARGETS := fe_2018_04.html fe_2018_04.pdf
-
-.PHONY: all clean distclean
-
-all: $(TEXITARGETS)
-
-clean: texinfo-clean
-       $(RM) *.bak
-       $(MAKE) -C img clean
-
-distclean: clean texinfo-distclean
-       $(RM) *.d *.html *.pdf
-       $(MAKE) -C img distclean
-
-include ../texinfo_exam.mk
-
-include ../../images.mk
diff --git a/doc/exam_fe/2018_04/fe_2018_04.texi b/doc/exam_fe/2018_04/fe_2018_04.texi
deleted file mode 100644 (file)
index e9f6a12..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-\input texinfo   @c -*-texinfo-*-
-@c %**start of header
-@ifnottex
-@documentlanguage ja_JP
-@end ifnottex
-@setfilename exam_fe_2018h.info
-@documentencoding UTF-8
-@settitle 基本技術情報者試験 2018年 春期 午後問題
-@firstparagraphindent insert
-@paragraphindent 0
-@ifhtml
-@exampleindent 0
-@end ifhtml
-@c %**end of header
-
-@indicateurl{https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30_1/2018h30h_fe_pm_qs.pdf} P.62〜P.66より
-
-@unnumbered 問12
-次のアセンブラプログラムの説明及びプログラムを読んで,設問1~3に答えよ。
-
-@unnumberedsec 〔プログラム1の説明〕
-0~65534の整数を表す数字から成る文字列(以下,数字列という)を数値に変換する副プログラムDTOBである。
-
-(1) 文字列は,DC命令の文字定数と同じ形式で主記憶に格納される。数字列567を 格納した例を,図1に示す。
-
-@center @image{img/fig1,15cm,,,.svg}
-
-@center 図1 数字列の格納例
-
-(2) 主プログラムは,数字列が格納されている領域の先頭アドレスをGR1に,数字列の長さをGR2に設定して,DTOBを呼ぶ。DTOBは,数値に変換して得た値をGR0に格納して呼出し元に戻る。
-
-(3) 副プログラムDTOBから戻るとき,汎用レジスタGR1~GR7の内容は元に戻す。
-
-
-@unnumberedsubsec〔プログラム1〕
-
-@verbatim
-DTOB    START
-        RPUSH
-        ADDL   GR2,GR1
-        LAD    GR0,0           ; 戻り値の初期化
-LP      CPL    GR1,GR2         ; 変換終了?
-        JZE    FIN
-        LD     GR4,0,GR1       ; 数字1文字の取出し
-        SUBL   GR4,='0'        ; 1 桁を数値に変換
-        SLL    GR0,1           ; GR0を10倍してGR4を加算
-        LD     GR5,GR0
-        ::ansbox:8:a::
-        ADDL   GR0,GR5
-        ADDL   GR0,GR4
-        LAD    GR1,1,GR1
-        JUMP   LP
-FIN     RPOP
-        RET
-        END
-@end verbatim
-
-@unnumberedsec 設問1
-
-プログラム1中の::ansbox:4::に入れる正しい答えを,解答群の中から選べ。
-
-aに関する解答群
-@itemize @w{}
-
-@item
-ア @code{ADDL  GR5,GR4}
-
-@item
-イ @code{SLL   GR4,1}
-
-@item
-ウ @code{SLL   GR4,2}
-
-@item
-エ @code{SLL   GR5,1}
-
-@item
-オ @code{SLL   GR5,2}
-@end itemize
-
-@unnumberedsec 設問2
-
-文字列の先頭から数字列を探索し,順に,対応する数値を管理テーブルに格納する副プログラムGETWDを,DTOBを使用して作成した。プログラム2中の::ansbox:4::に入れる正しい答えを,解答群の中から選べ。
-
-
-@unnumberedsubsec 〔プログラム2の説明〕
-
-(1) 文字列は,一つ以上の空白文字で区切られた任意の個数の数字列を含み,最後はピリオドで終わる。最後の数字列とピリオドの間,又は文字列の先頭に一つ以上の空白文字があってもよい。文字列の例を,図2に示す。
-
-
-@center @image{img/fig2,15cm,,,.svg}
-
-@center 図2 文字列の例
-
-(2) 管理テーブルには,文字列中に数字列が現れるごとに,順に1 語から成る要素を追加し,数字列を数値に変換して得た値を格納する。数字列の探索が終了したとき,管理テーブルの最後に1 語から成る要素を追加し,数値の終わりを示す印として-1を格納する。図2の文字列をGETWDで処理して得た管理テーブルを,図3に示す。
-
-@center @image{img/fig3,15cm,,,.svg}
-
-@center 図3 GETWDで処理して得た管理テーブル
-
-(3) 主プログラムは,文字列が格納されている領域の先頭アドレスをGR1に,管理テーブルの先頭アドレスをGR2に設定して,GETWDを呼ぶ。
-
-(4) 副プログラムGETWDから戻るとき,汎用レジスタGR1~GR7の内容は元に戻す。
-
-@unnumberedsubsec 〔プログラム2〕
-
-@verbatim
-GETWD   START
-        RPUSH
-        LD     GR6,GR1
-        LD     GR7,GR2
-        LD     GR3,=-1       ; 数字列の処理状態フラグの初期化
-        LAD    GR6,-1,GR6
-LP      LAD    GR6,1,GR6
-        LD     GR4,0,GR6     ; 1文字の取出し
-        CPL    GR4,='.'
-        JZE    FIN
-        CPL    GR4,=' '
-        ::ansbox:8:b::
-        CALL   SETWD
-        JUMP   LP
-NUM     LD     GR3,GR3       ; 数字列の処理中?
-        JZE    LP
-        LD     GR3,=0        ; 次の数字列の処理開始
-        LD     GR1,GR6       ; 数字列の先頭アドレスを退避
-        JUMP   LP
-FIN     CALL   SETWD
-        LD     GR2,=-1
-        ST     GR2,0,GR7     ; 数値の終わりを示す印を格納
-        RPOP
-        RET
-SETWD   LD     GR3,GR3
-        ::ansbox:8:c::
-        LD     GR2,GR6
-        SUBL   GR2,GR1
-        CALL   DTOB          ; 数字列を数値に変換
-        ST     GR0,0,GR7
-        LD     GR3,=-1       ; 数字列の処理中状態を解除
-        ::ansbox:8:d::
-FIN2    RET
-        END
-@end verbatim
-
-
-bに関する解答群
-@itemize @w{}
-
-@item
-ア @code{JNZ    FIN}
-
-@item
-イ @code{JNZ    LP}
-
-@item
-ウ @code{JNZ    NUM}
-
-@item
-エ @code{JZE    FIN}
-
-@item
-オ @code{JZE    LP}
-
-@item
-カ @code{JZE    NUM}
-@end itemize
-
-cに関する解答群
-@itemize @w{}
-
-@item
-ア @code{JNZ    FIN}
-
-@item
-イ @code{JNZ    FIN2}
-
-@item
-ウ @code{JNZ    NUM}
-
-@item
-エ @code{JZE    FIN}
-
-@item
-オ @code{JZE    FIN2}
-
-@item
-カ @code{JZE    NUM}
-@end itemize
-
-d に関する解答群
-
-@itemize @w{}
-@item
-ア @code{LAD    GR6,1,GR1}
-
-@item
-イ @code{LAD    GR6,1,GR6}
-
-@item
-ウ @code{LAD    GR7,1,GR2}
-
-@item
-エ @code{LAD    GR7,1,GR7}
-
-@item
-オ @code{LD     GR6,GR1}
-
-@item
-カ @code{LD     GR7,GR2}
-@end itemize
-
-@unnumberedsec 設問3
-
-GETWDを使用して,二つの整数の積を求める副プログラムMULTを作成した。プログラム3中の::ansbox:4::に入れる正しい答えを,解答群の中から選べ。
-
-@unnumberedsubsec 〔プログラム3の説明〕
-
-(1) MULTは,数字列を二つだけ含む,〔プログラム2の説明〕の(1)で示した形式の文字列について,最初の数字列に対応する数値を被乗数とし,2番目の数字列に対応する数値を乗数として乗算を行う。乗算においてあふれは発生しないものとする。
-
-(2) 主プログラムは,文字列が格納されている領域の先頭アドレスをGR1に設定して,MULTを呼ぶ。MULTは,演算結果をGR0に格納して呼出し元に戻る。
-
-(3) 副プログラムMULTから戻るとき,汎用レジスタGR1~GR7の内容は元に戻す。
-
-@unnumberedsubsec 〔プログラム3〕
-
-@verbatim
-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     ::ansbox:8:e::
-       LD      GR3,GR5
-       AND     GR3,=#0001   ; 乗数の最下位ビットのチェック
-       JZE     NEXT
-       ADDL    GR0,GR4
-NEXT   SLL     GR4,1        ; 被乗数を1ビット左論理シフト
-       ::ansbox:8:f::
-       JUMP    LP
-FIN    RPOP
-       RET
-CTBL   DS      3            ; GETWD用管理テーブル
-       END
-@end verbatim
-
-eに関する解答群
-
-@itemize @w{}
-@item
-ア @code{JMI    FIN}
-
-@item
-イ @code{JMI    NEXT}
-
-@item
-ウ @code{JPL    FIN}
-
-@item
-エ @code{JPL    NEXT}
-
-@item
-オ @code{JZE    FIN}
-
-@item
-カ @code{JZE    NEXT}
-@end itemize
-
-
-fに関する解答群
-
-@itemize @w{}
-@item
-ア @code{ADDL   GR0,GR5}
-
-@item
-イ @code{ADDL   GR5,GR4}
-
-@item
-ウ @code{LD     GR5,GR4}
-
-@item
-エ @code{SLL    GR5,1}
-
-@item
-オ @code{SRL    GR5,1}
-@end itemize
-@bye
diff --git a/doc/exam_fe/2018_04/img/Makefile b/doc/exam_fe/2018_04/img/Makefile
deleted file mode 100644 (file)
index f54721f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-all: $(foreach ext,.png .eps,$(addsuffix $(ext),$(basename $(wildcard *.svg))))
-
-clean:
-       $(RM) *.log
-
-distclean: clean
-       $(RM) *.png *.eps *.jpg
-
-include ../../../images.mk
diff --git a/doc/exam_fe/2018_04/img/fig1.svg b/doc/exam_fe/2018_04/img/fig1.svg
deleted file mode 100644 (file)
index f376f72..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="90" viewBox="0 0 200 60">
-  <g transform="translate(10,10)">
-    <g stroke="black" stroke-width="1" fill="none">
-      <rect x="0" y="0" width="180" height="30" />
-      <line x1="60" y1="0"  x2="60" y2="30" />
-      <line x1="120" y1="0"  x2="120" y2="30" />
-    </g>
-    <g font-family="monospace" font-size="10" fill="black">
-      <text x="15" y="20">#0035</text>
-      <text x="75" y="20">#0036</text>
-      <text x="135" y="20">#0037</text>
-    </g>
-    <g font-family="sans-serif" font-size="10px" fill="black">
-      <text x="5" y="40">(1語目)</text>
-      <text x="65" y="40">(2語目)</text>
-      <text x="125" y="40">(3語目)</text>
-    </g>
-  </g>
-</svg>
diff --git a/doc/exam_fe/2018_04/img/fig2.svg b/doc/exam_fe/2018_04/img/fig2.svg
deleted file mode 100644 (file)
index af1cdb3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="360" height="120" viewBox="0 0 240 60">
-  <g transform="translate(10,10)">
-    <rect x="0" y="0" width="170" height="30" stroke="black" stroke-width="1" fill="none" />
-    <text font-family="monospace" font-size="10" fill="black" x="10" y="20">△△1234△56789△△△9876△.</text>
-    <g font-family="sans-serif" font-size="10" fill="black">
-      <text x="0" y="40">注記</text>
-      <text x="30" y="40">空白文字は“△”と表示する</text>
-    </g>
-  </g>
-</svg>
diff --git a/doc/exam_fe/2018_04/img/fig3.svg b/doc/exam_fe/2018_04/img/fig3.svg
deleted file mode 100644 (file)
index 9ae0372..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="360" height="90" viewBox="0 0 240 60">
-  <g transform="translate(10,10)">
-    <g stroke="black" stroke-width="1" fill="none">
-      <rect x="0" y="0" width="200" height="30" />
-      <line x1="50" y1="0"  x2="50" y2="30" />
-      <line x1="100" y1="0"  x2="100" y2="30" />
-      <line x1="150" y1="0"  x2="150" y2="30" />
-    </g>
-    <g font-family="monospace" font-size="10px" fill="black">
-      <text x="20" y="20">1234</text>
-      <text x="65" y="20">56789</text>
-      <text x="120" y="20">9876</text>
-      <text x="180" y="20">-1</text>
-    </g>
-    <g font-family="sans-serif" font-size="10" fill="black">
-      <text x="0" y="40">注記</text>
-      <text x="30" y="40">数値は,10進数で表記している。</text>
-    </g>
-  </g>
-</svg>
diff --git a/doc/exam_fe/style.css b/doc/exam_fe/style.css
deleted file mode 100644 (file)
index b1d8a2c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-body {
-    margin-left: 6em;
-    margin-right: 12em;
-    color: black;
-    background-color: #EEE;
-    font-family: sans-serif;
-}
-
-h1, h2, h3, h4, h5, h6 {
-    color: navy;
-    background-color: inherit;
-}
-
-h1, h2 {
-    margin-left: -2em;
-}
-
-.node{
-    margin-left: -3em;
-    color: inherit;
-    background-color: #DDF;
-}
-
-.menu, .node {
-    color: inherit;
-    background-color: #DDF;
-}
-
-table.menu, table.menu th, table.menu td {
-    border-style: none;
-}
-
-h2 {
-    padding: 0.25em;
-}
-
-.contents {
-    background-color: #DDF;
-    border: 4px double #000;
-    padding: 0.5em 1em 0.5em 1em;
-}
-
-.contents h2 {
-    margin-left: 0;
-    color: black;
-    background-color: #DDF;
-}
-
-.contents li {
-    list-style-type: none;
-}
-
-.shortcontents {
-    background-color: #DDF;
-    border: 4px double #000;
- }
-
-.shortcontents h2{
-    display: none;
-}
-
-h1.node-heading {
-    display: none;
-}
-
-h2.contents-heading{
-    display: none;
-}
-
-h2.shortcontents-heading{
-    display: none;
-}
-
-.shortcontents a {
-   margin-right: 1em;
-}
-
-h3, h4, h5 {
-    margin-left: -1em;
-}
-
-h5 {
-    font-size: 100%;
-}
-
-p {
-    line-height: 1.25em;
-    margin-top: 0;
-    margin-bottom: 0.5em;
-}
-
-a:hover {
-    color: red;
-    text-decoration: underline;
-}
-
-pre.example, pre.verbatim {
-    padding: 0.5em 1em 0.5em 1em;
-    border: 1px solid #CCC;
-    font-size: 120%;
-}
-
-a {
-    text-decoration: none;
-}
-
-blockquote {
-    line-height: 1.25em;
-    border: 1px solid #00F;
-}
-
-kbd, code, .file, var {
-    font-style: normal;
-    font-weight: normal;
-    font-family: monospace;
-    font-size: 120%;
-    margin-left:0.25em;
-    margin-right: 0.25em;
-}
-
-table, th, td {
-    border: 1px solid black;
-    border-collapse: collapse; /* 枠線の表示方法 */
-    margin-bottom: 1em;
-}
-
-table.cartouche, table.cartouche th, table.cartouche td  {
-    border: none;
-}
-
-pre.example .command, pre.example .option, pre.example kbd {
-    font-weight: bold;
-    font-family: monospace;
-    font-size: 110%;
-    background-color: inherit;
-    font-style: normal;
-    margin-left:0;
-    margin-right: 0;
-}
-
-pre.example strong {
-    font: inherit;
-    border: 2px solid green;
-}
-
-th, em {
-    font-style: normal;
-    font-weight: bold;
-    font-family: sans-serif;
-}
-
-th {
-    text-align: center;
-}
-
-dfn {
-    font-style: normal;
-}
-
-.header, .menu {
-    display: none;
-}
-
-.selection {
-    color: navy;
-    font-weight: bold;
-    margin-right: 1em;
-}
-
-.ansbox {
-    border: 2px solid navy;
-    text-align: center;
-    display: inline-block;
-}
diff --git a/doc/exam_fe/texinfo_exam.mk b/doc/exam_fe/texinfo_exam.mk
deleted file mode 100644 (file)
index 56c8cd1..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-.PHONY: texinfo-distclean texinfo-clean texinfo-textmp-clean
-
-CP := cp
-DVIPDFMX := dvipdfmx
-DVIPDFMX_FLAGS ?=
-ECHO := echo
-INSTALL-INFO := install-info
-MAKEINFO_FLAGS ?=
-MKDIR := mkdir
-RMR := rm -rf
-SED := sed
-TEX := ptex
-TEXI2DVI := TEX=$(TEX) texi2dvi
-TEXI2DVI_FLAGS ?= -q --texinfo=@afourpaper
-MV := mv
-
-# \includeコマンドで読み込まれるファイル
-intexi = $(strip $(shell $(SED) -n -e 's/@include \(.*\)/\1/pg' $<))
-
-# \imageコマンドで読み込まれるファイル
-imagetexi = $(strip $(shell $(SED) -n -e 's/.*@image{\([^,]*\)\(,[^,]*,[^,]*,[^,]*,\([^,}]*\)\)}.*/\1\3/p' $<))
-
-# 依存関係を自動生成し、dファイルに格納
-%.d: %.texi
-       @$(ECHO) '$@ is created by scanning $<.'
-    # texiファイルと出力ファイルの依存関係
-       @$(ECHO) '$(foreach ext,.html _html .pdf .xml .info .txt .d,$(subst .texi,$(ext),$<)): $<' >$@
-    # includeファイルの依存関係
-       $(if $(intexi),@( \
-      $(ECHO) >>$@; \
-      $(ECHO) '# Include Files' >>$@; \
-      $(ECHO) '$(foreach ext,.html _html .info .pdf .xml .txt,$<),$(subst .texi,$(ext),$<): $(intexi)') >>$@)
-  # imageファイルの依存関係
-  # Docbookは未定義
-       $(if $(imagetexi),@( \
-      $(ECHO) >>$@; \
-      $(ECHO) '# Image Files: HTML, HTML split, Info' >>$@; \
-      $(ECHO) '$(foreach ext,.html _html .info,$(subst .texi,$(ext),$<)): $(imagetexi)' >>$@))
-       $(if $(imagetexi),@( \
-      $(ECHO) >>$@; \
-      $(ECHO) '# Imagefiles: DVI -> PDF' >>$@; \
-      $(ECHO) '$(subst .texi,.pdf,$<): $(addsuffix .eps,$(basename $(imagetexi)))' >>$@))
-
-# 変数TEXITARGETSで指定されたターゲットファイルに対応するdファイルをインクルード
-# .dファイルからヘッダファイルの依存関係を取得する
-# ターゲットに clean が含まれている場合は除く
-ifeq (,$(filter %clean,$(MAKECMDGOALS)))
-  -include $(addsuffix .d,$(basename $(TEXITARGETS)))
-endif
-
-%.info: %.texi
-       $(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ $<
-
-%.html: %.texi
-       $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $<
-       $(SED) -i '' -e 's%<img src="\([^"]*\)" *[^>]*>%<object type="image/svg+xml" data="\1">&</object>%g' $@
-       $(SED) -i '' -e 's%<!-- /@w --> \([アイウエオカキクケコ]\)%<span class="selection">\1</span>%g' $@
-       $(SED) -i '' -e 's%::ansbox:\([0-9]*\):*\([a-zA-Z]\)*::%<span class="ansbox" style="min-width:\1em">\2\&nbsp;</span>%g' $@
-
-%.html %_html: $(CSS)
-
-%.pdf: %.dvi
-       $(DVIPDFMX) $(DVIPDFMXFLAGS) $<
-
-%.txt: %.texi
-       $(MAKEINFO) --no-headers --disable-encoding -o $@ $<
-
-%.xml: %.texi
-       @$(MAKEINFO) --docbook -o $@ $<
-
-texinfo-distclean: texinfo-clean
-       $(RMR) *_html *.info *.html *.pdf  *.dvi *.txt
-
-texinfo-clean: texinfo-textmp-clean
-       $(RM) *.d
-
-texinfo-textmp-clean:
-       $(RM) *.aux *.cp *.cps *.fn *.ky *.log *.pg *.pgs *.tmp *.toc *.tp *.vr