From 8b9bafa8e8927ad19968969f466c756f0aeac8a3 Mon Sep 17 00:00:00 2001
From: j8takagi <j8takagi@nifty.com>
Date: Thu, 7 Jun 2018 21:55:35 +0900
Subject: [PATCH] =?utf8?q?=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB=E3=81=AB?=
 =?utf8?q?=E3=80=81count1=E3=81=A8call=5Fcount1=E3=82=92=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 as/sample/call_count1.casl |  5 +++++
 as/sample/count1.casl      | 18 ++++++++++++++++++
 2 files changed, 23 insertions(+)
 create mode 100644 as/sample/call_count1.casl
 create mode 100644 as/sample/count1.casl

diff --git a/as/sample/call_count1.casl b/as/sample/call_count1.casl
new file mode 100644
index 0000000..7001296
--- /dev/null
+++ b/as/sample/call_count1.casl
@@ -0,0 +1,5 @@
+MAIN    START
+        LAD     GR1,32764
+        CALL    COUNT1
+        RET
+        END
diff --git a/as/sample/count1.casl b/as/sample/count1.casl
new file mode 100644
index 0000000..d9f4837
--- /dev/null
+++ b/as/sample/count1.casl
@@ -0,0 +1,18 @@
+COUNT1  START                    ;
+;       入力    ; GR1:検索する語
+;       処理    ; GR1 中の'1'のビットの個数を求める
+;       出力    ; GR0:GR1 中の'1'のビットの個数
+        PUSH    0,GR1            ;
+        PUSH    0,GR2            ;
+        SUBA    GR2,GR2          ; Count = 0
+        AND     GR1,GR1          ; 全部のビットが'0'?
+        JZE     RETURN           ; 全部のビットが'0'なら終了
+MORE    LAD     GR2,1,GR2        ; Count = Count + 1
+        LAD     GR0,-1,GR1       ; 最下位の'1'のビット 1 個を
+        AND     GR1,GR0          ; '0'に変える
+        JNZ     MORE             ; '1'のビットが残っていれば繰返し
+RETURN  LD      GR0,GR2          ; GR0 = Count
+        POP     GR2              ;
+        POP     GR1              ;
+        RET                      ; 呼出しプログラムへ戻る
+        END                      ;
-- 
2.18.0